3 #define PY_SSIZE_T_CLEAN 6 #error Python headers needed to compile C extensions, please install development version of Python. 7 #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) 8 #error Cython requires Python 2.6+ or Python 3.3+. 10 #define CYTHON_ABI "0_29_16" 11 #define CYTHON_HEX_VERSION 0x001D10F0 12 #define CYTHON_FUTURE_DIVISION 0 15 #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) 17 #if !defined(WIN32) && !defined(MS_WINDOWS) 29 #define DL_IMPORT(t) t 32 #define DL_EXPORT(t) t 35 #ifndef HAVE_LONG_LONG 36 #if PY_VERSION_HEX >= 0x02070000 37 #define HAVE_LONG_LONG 41 #define PY_LONG_LONG LONG_LONG 44 #define Py_HUGE_VAL HUGE_VAL 47 #define CYTHON_COMPILING_IN_PYPY 1 48 #define CYTHON_COMPILING_IN_PYSTON 0 49 #define CYTHON_COMPILING_IN_CPYTHON 0 50 #undef CYTHON_USE_TYPE_SLOTS 51 #define CYTHON_USE_TYPE_SLOTS 0 52 #undef CYTHON_USE_PYTYPE_LOOKUP 53 #define CYTHON_USE_PYTYPE_LOOKUP 0 54 #if PY_VERSION_HEX < 0x03050000 55 #undef CYTHON_USE_ASYNC_SLOTS 56 #define CYTHON_USE_ASYNC_SLOTS 0 57 #elif !defined(CYTHON_USE_ASYNC_SLOTS) 58 #define CYTHON_USE_ASYNC_SLOTS 1 60 #undef CYTHON_USE_PYLIST_INTERNALS 61 #define CYTHON_USE_PYLIST_INTERNALS 0 62 #undef CYTHON_USE_UNICODE_INTERNALS 63 #define CYTHON_USE_UNICODE_INTERNALS 0 64 #undef CYTHON_USE_UNICODE_WRITER 65 #define CYTHON_USE_UNICODE_WRITER 0 66 #undef CYTHON_USE_PYLONG_INTERNALS 67 #define CYTHON_USE_PYLONG_INTERNALS 0 68 #undef CYTHON_AVOID_BORROWED_REFS 69 #define CYTHON_AVOID_BORROWED_REFS 1 70 #undef CYTHON_ASSUME_SAFE_MACROS 71 #define CYTHON_ASSUME_SAFE_MACROS 0 72 #undef CYTHON_UNPACK_METHODS 73 #define CYTHON_UNPACK_METHODS 0 74 #undef CYTHON_FAST_THREAD_STATE 75 #define CYTHON_FAST_THREAD_STATE 0 76 #undef CYTHON_FAST_PYCALL 77 #define CYTHON_FAST_PYCALL 0 78 #undef CYTHON_PEP489_MULTI_PHASE_INIT 79 #define CYTHON_PEP489_MULTI_PHASE_INIT 0 80 #undef CYTHON_USE_TP_FINALIZE 81 #define CYTHON_USE_TP_FINALIZE 0 82 #undef CYTHON_USE_DICT_VERSIONS 83 #define CYTHON_USE_DICT_VERSIONS 0 84 #undef CYTHON_USE_EXC_INFO_STACK 85 #define CYTHON_USE_EXC_INFO_STACK 0 86 #elif defined(PYSTON_VERSION) 87 #define CYTHON_COMPILING_IN_PYPY 0 88 #define CYTHON_COMPILING_IN_PYSTON 1 89 #define CYTHON_COMPILING_IN_CPYTHON 0 90 #ifndef CYTHON_USE_TYPE_SLOTS 91 #define CYTHON_USE_TYPE_SLOTS 1 93 #undef CYTHON_USE_PYTYPE_LOOKUP 94 #define CYTHON_USE_PYTYPE_LOOKUP 0 95 #undef CYTHON_USE_ASYNC_SLOTS 96 #define CYTHON_USE_ASYNC_SLOTS 0 97 #undef CYTHON_USE_PYLIST_INTERNALS 98 #define CYTHON_USE_PYLIST_INTERNALS 0 99 #ifndef CYTHON_USE_UNICODE_INTERNALS 100 #define CYTHON_USE_UNICODE_INTERNALS 1 102 #undef CYTHON_USE_UNICODE_WRITER 103 #define CYTHON_USE_UNICODE_WRITER 0 104 #undef CYTHON_USE_PYLONG_INTERNALS 105 #define CYTHON_USE_PYLONG_INTERNALS 0 106 #ifndef CYTHON_AVOID_BORROWED_REFS 107 #define CYTHON_AVOID_BORROWED_REFS 0 109 #ifndef CYTHON_ASSUME_SAFE_MACROS 110 #define CYTHON_ASSUME_SAFE_MACROS 1 112 #ifndef CYTHON_UNPACK_METHODS 113 #define CYTHON_UNPACK_METHODS 1 115 #undef CYTHON_FAST_THREAD_STATE 116 #define CYTHON_FAST_THREAD_STATE 0 117 #undef CYTHON_FAST_PYCALL 118 #define CYTHON_FAST_PYCALL 0 119 #undef CYTHON_PEP489_MULTI_PHASE_INIT 120 #define CYTHON_PEP489_MULTI_PHASE_INIT 0 121 #undef CYTHON_USE_TP_FINALIZE 122 #define CYTHON_USE_TP_FINALIZE 0 123 #undef CYTHON_USE_DICT_VERSIONS 124 #define CYTHON_USE_DICT_VERSIONS 0 125 #undef CYTHON_USE_EXC_INFO_STACK 126 #define CYTHON_USE_EXC_INFO_STACK 0 128 #define CYTHON_COMPILING_IN_PYPY 0 129 #define CYTHON_COMPILING_IN_PYSTON 0 130 #define CYTHON_COMPILING_IN_CPYTHON 1 131 #ifndef CYTHON_USE_TYPE_SLOTS 132 #define CYTHON_USE_TYPE_SLOTS 1 134 #if PY_VERSION_HEX < 0x02070000 135 #undef CYTHON_USE_PYTYPE_LOOKUP 136 #define CYTHON_USE_PYTYPE_LOOKUP 0 137 #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) 138 #define CYTHON_USE_PYTYPE_LOOKUP 1 140 #if PY_MAJOR_VERSION < 3 141 #undef CYTHON_USE_ASYNC_SLOTS 142 #define CYTHON_USE_ASYNC_SLOTS 0 143 #elif !defined(CYTHON_USE_ASYNC_SLOTS) 144 #define CYTHON_USE_ASYNC_SLOTS 1 146 #if PY_VERSION_HEX < 0x02070000 147 #undef CYTHON_USE_PYLONG_INTERNALS 148 #define CYTHON_USE_PYLONG_INTERNALS 0 149 #elif !defined(CYTHON_USE_PYLONG_INTERNALS) 150 #define CYTHON_USE_PYLONG_INTERNALS 1 152 #ifndef CYTHON_USE_PYLIST_INTERNALS 153 #define CYTHON_USE_PYLIST_INTERNALS 1 155 #ifndef CYTHON_USE_UNICODE_INTERNALS 156 #define CYTHON_USE_UNICODE_INTERNALS 1 158 #if PY_VERSION_HEX < 0x030300F0 159 #undef CYTHON_USE_UNICODE_WRITER 160 #define CYTHON_USE_UNICODE_WRITER 0 161 #elif !defined(CYTHON_USE_UNICODE_WRITER) 162 #define CYTHON_USE_UNICODE_WRITER 1 164 #ifndef CYTHON_AVOID_BORROWED_REFS 165 #define CYTHON_AVOID_BORROWED_REFS 0 167 #ifndef CYTHON_ASSUME_SAFE_MACROS 168 #define CYTHON_ASSUME_SAFE_MACROS 1 170 #ifndef CYTHON_UNPACK_METHODS 171 #define CYTHON_UNPACK_METHODS 1 173 #ifndef CYTHON_FAST_THREAD_STATE 174 #define CYTHON_FAST_THREAD_STATE 1 176 #ifndef CYTHON_FAST_PYCALL 177 #define CYTHON_FAST_PYCALL 1 179 #ifndef CYTHON_PEP489_MULTI_PHASE_INIT 180 #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) 182 #ifndef CYTHON_USE_TP_FINALIZE 183 #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) 185 #ifndef CYTHON_USE_DICT_VERSIONS 186 #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) 188 #ifndef CYTHON_USE_EXC_INFO_STACK 189 #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) 192 #if !defined(CYTHON_FAST_PYCCALL) 193 #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) 195 #if CYTHON_USE_PYLONG_INTERNALS 196 #include "longintrepr.h" 201 enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P ==
sizeof(
void*)) };
204 #ifndef __has_attribute 205 #define __has_attribute(x) 0 207 #ifndef __has_cpp_attribute 208 #define __has_cpp_attribute(x) 0 210 #ifndef CYTHON_RESTRICT 211 #if defined(__GNUC__) 212 #define CYTHON_RESTRICT __restrict__ 213 #elif defined(_MSC_VER) && _MSC_VER >= 1400 214 #define CYTHON_RESTRICT __restrict 215 #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 216 #define CYTHON_RESTRICT restrict 218 #define CYTHON_RESTRICT 221 #ifndef CYTHON_UNUSED 222 # if defined(__GNUC__) 223 # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) 224 # define CYTHON_UNUSED __attribute__ ((__unused__)) 226 # define CYTHON_UNUSED 228 # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) 229 # define CYTHON_UNUSED __attribute__ ((__unused__)) 231 # define CYTHON_UNUSED 234 #ifndef CYTHON_MAYBE_UNUSED_VAR 235 # if defined(__cplusplus) 236 template<
class T>
void CYTHON_MAYBE_UNUSED_VAR(
const T& ) { }
238 # define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) 241 #ifndef CYTHON_NCP_UNUSED 242 # if CYTHON_COMPILING_IN_CPYTHON 243 # define CYTHON_NCP_UNUSED 245 # define CYTHON_NCP_UNUSED CYTHON_UNUSED 248 #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) 250 #ifndef _MSC_STDINT_H_ 252 typedef unsigned char uint8_t;
253 typedef unsigned int uint32_t;
255 typedef unsigned __int8 uint8_t;
256 typedef unsigned __int32 uint32_t;
262 #ifndef CYTHON_FALLTHROUGH 263 #if defined(__cplusplus) && __cplusplus >= 201103L 264 #if __has_cpp_attribute(fallthrough) 265 #define CYTHON_FALLTHROUGH [[fallthrough]] 266 #elif __has_cpp_attribute(clang::fallthrough) 267 #define CYTHON_FALLTHROUGH [[clang::fallthrough]] 268 #elif __has_cpp_attribute(gnu::fallthrough) 269 #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] 272 #ifndef CYTHON_FALLTHROUGH 273 #if __has_attribute(fallthrough) 274 #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) 276 #define CYTHON_FALLTHROUGH 279 #if defined(__clang__ ) && defined(__apple_build_version__) 280 #if __apple_build_version__ < 7000000 281 #undef CYTHON_FALLTHROUGH 282 #define CYTHON_FALLTHROUGH 288 #error "Cython files generated with the C++ option must be compiled with a C++ compiler." 290 #ifndef CYTHON_INLINE 291 #if defined(__clang__) 292 #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) 294 #define CYTHON_INLINE inline 298 void __Pyx_call_destructor(
T& x) {
302 class __Pyx_FakeReference {
304 __Pyx_FakeReference() : ptr(NULL) { }
305 __Pyx_FakeReference(
const T& ref) : ptr(const_cast<T*>(&ref)) { }
306 T *operator->() {
return ptr; }
307 T *operator&() {
return ptr; }
308 operator T&() {
return *ptr; }
309 template<
typename U>
bool operator ==(
U other) {
return *ptr == other; }
310 template<
typename U>
bool operator !=(
U other) {
return *ptr != other; }
315 #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) 316 #define Py_OptimizeFlag 0 318 #define __PYX_BUILD_PY_SSIZE_T "n" 319 #define CYTHON_FORMAT_SSIZE_T "z" 320 #if PY_MAJOR_VERSION < 3 321 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" 322 #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ 323 PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) 324 #define __Pyx_DefaultClassType PyClass_Type 326 #define __Pyx_BUILTIN_MODULE_NAME "builtins" 327 #if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 328 #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ 329 PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) 331 #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ 332 PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) 334 #define __Pyx_DefaultClassType PyType_Type 336 #ifndef Py_TPFLAGS_CHECKTYPES 337 #define Py_TPFLAGS_CHECKTYPES 0 339 #ifndef Py_TPFLAGS_HAVE_INDEX 340 #define Py_TPFLAGS_HAVE_INDEX 0 342 #ifndef Py_TPFLAGS_HAVE_NEWBUFFER 343 #define Py_TPFLAGS_HAVE_NEWBUFFER 0 345 #ifndef Py_TPFLAGS_HAVE_FINALIZE 346 #define Py_TPFLAGS_HAVE_FINALIZE 0 348 #ifndef METH_STACKLESS 349 #define METH_STACKLESS 0 351 #if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) 352 #ifndef METH_FASTCALL 353 #define METH_FASTCALL 0x80 355 typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *
self, PyObject *
const *args, Py_ssize_t nargs);
356 typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *
self, PyObject *
const *args,
357 Py_ssize_t nargs, PyObject *kwnames);
359 #define __Pyx_PyCFunctionFast _PyCFunctionFast 360 #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords 362 #if CYTHON_FAST_PYCCALL 363 #define __Pyx_PyFastCFunction_Check(func)\ 364 ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) 366 #define __Pyx_PyFastCFunction_Check(func) 0 368 #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) 369 #define PyObject_Malloc(s) PyMem_Malloc(s) 370 #define PyObject_Free(p) PyMem_Free(p) 371 #define PyObject_Realloc(p) PyMem_Realloc(p) 373 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 374 #define PyMem_RawMalloc(n) PyMem_Malloc(n) 375 #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) 376 #define PyMem_RawFree(p) PyMem_Free(p) 378 #if CYTHON_COMPILING_IN_PYSTON 379 #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) 380 #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) 382 #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) 383 #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) 385 #if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 386 #define __Pyx_PyThreadState_Current PyThreadState_GET() 387 #elif PY_VERSION_HEX >= 0x03060000 388 #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() 389 #elif PY_VERSION_HEX >= 0x03000000 390 #define __Pyx_PyThreadState_Current PyThreadState_GET() 392 #define __Pyx_PyThreadState_Current _PyThreadState_Current 394 #if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) 395 #include "pythread.h" 396 #define Py_tss_NEEDS_INIT 0 397 typedef int Py_tss_t;
398 static CYTHON_INLINE
int PyThread_tss_create(Py_tss_t *key) {
399 *key = PyThread_create_key();
402 static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(
void) {
403 Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(
sizeof(Py_tss_t));
404 *key = Py_tss_NEEDS_INIT;
407 static CYTHON_INLINE
void PyThread_tss_free(Py_tss_t *key) {
410 static CYTHON_INLINE
int PyThread_tss_is_created(Py_tss_t *key) {
411 return *key != Py_tss_NEEDS_INIT;
413 static CYTHON_INLINE
void PyThread_tss_delete(Py_tss_t *key) {
414 PyThread_delete_key(*key);
415 *key = Py_tss_NEEDS_INIT;
417 static CYTHON_INLINE
int PyThread_tss_set(Py_tss_t *key,
void *value) {
418 return PyThread_set_key_value(*key, value);
420 static CYTHON_INLINE
void * PyThread_tss_get(Py_tss_t *key) {
421 return PyThread_get_key_value(*key);
424 #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) 425 #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) 427 #define __Pyx_PyDict_NewPresized(n) PyDict_New() 429 #if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION 430 #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) 431 #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) 433 #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) 434 #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) 436 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS 437 #define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) 439 #define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) 441 #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) 442 #define CYTHON_PEP393_ENABLED 1 443 #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ 444 0 : _PyUnicode_Ready((PyObject *)(op))) 445 #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) 446 #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) 447 #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) 448 #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) 449 #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) 450 #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) 451 #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) 452 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) 454 #define CYTHON_PEP393_ENABLED 0 455 #define PyUnicode_1BYTE_KIND 1 456 #define PyUnicode_2BYTE_KIND 2 457 #define PyUnicode_4BYTE_KIND 4 458 #define __Pyx_PyUnicode_READY(op) (0) 459 #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) 460 #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) 461 #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) 462 #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) 463 #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) 464 #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) 465 #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) 466 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) 468 #if CYTHON_COMPILING_IN_PYPY 469 #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) 470 #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) 472 #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) 473 #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ 474 PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) 476 #if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) 477 #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) 479 #if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) 480 #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) 482 #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) 483 #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) 485 #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) 486 #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) 487 #if PY_MAJOR_VERSION >= 3 488 #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) 490 #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) 492 #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) 493 #define PyObject_ASCII(o) PyObject_Repr(o) 495 #if PY_MAJOR_VERSION >= 3 496 #define PyBaseString_Type PyUnicode_Type 497 #define PyStringObject PyUnicodeObject 498 #define PyString_Type PyUnicode_Type 499 #define PyString_Check PyUnicode_Check 500 #define PyString_CheckExact PyUnicode_CheckExact 501 #ifndef PyObject_Unicode 502 #define PyObject_Unicode PyObject_Str 505 #if PY_MAJOR_VERSION >= 3 506 #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) 507 #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) 509 #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) 510 #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) 512 #ifndef PySet_CheckExact 513 #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) 515 #if CYTHON_ASSUME_SAFE_MACROS 516 #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) 518 #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) 520 #if PY_MAJOR_VERSION >= 3 521 #define PyIntObject PyLongObject 522 #define PyInt_Type PyLong_Type 523 #define PyInt_Check(op) PyLong_Check(op) 524 #define PyInt_CheckExact(op) PyLong_CheckExact(op) 525 #define PyInt_FromString PyLong_FromString 526 #define PyInt_FromUnicode PyLong_FromUnicode 527 #define PyInt_FromLong PyLong_FromLong 528 #define PyInt_FromSize_t PyLong_FromSize_t 529 #define PyInt_FromSsize_t PyLong_FromSsize_t 530 #define PyInt_AsLong PyLong_AsLong 531 #define PyInt_AS_LONG PyLong_AS_LONG 532 #define PyInt_AsSsize_t PyLong_AsSsize_t 533 #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask 534 #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask 535 #define PyNumber_Int PyNumber_Long 537 #if PY_MAJOR_VERSION >= 3 538 #define PyBoolObject PyLongObject 540 #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY 541 #ifndef PyUnicode_InternFromString 542 #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) 545 #if PY_VERSION_HEX < 0x030200A4 546 typedef long Py_hash_t;
547 #define __Pyx_PyInt_FromHash_t PyInt_FromLong 548 #define __Pyx_PyInt_AsHash_t PyInt_AsLong 550 #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t 551 #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t 553 #if PY_MAJOR_VERSION >= 3 554 #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) 556 #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) 558 #if CYTHON_USE_ASYNC_SLOTS 559 #if PY_VERSION_HEX >= 0x030500B1 560 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods 561 #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) 563 #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) 566 #define __Pyx_PyType_AsAsync(obj) NULL 568 #ifndef __Pyx_PyAsyncMethodsStruct 573 } __Pyx_PyAsyncMethodsStruct;
576 #if defined(WIN32) || defined(MS_WINDOWS) 577 #define _USE_MATH_DEFINES 581 #define __PYX_NAN() ((float) NAN) 583 static CYTHON_INLINE
float __PYX_NAN() {
585 memset(&value, 0xFF,
sizeof(value));
589 #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) 590 #define __Pyx_truncl trunc 592 #define __Pyx_truncl truncl 596 #define __PYX_ERR(f_index, lineno, Ln_error) \ 598 __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ 601 #ifndef __PYX_EXTERN_C 603 #define __PYX_EXTERN_C extern "C" 605 #define __PYX_EXTERN_C extern 609 #define __PYX_HAVE__mprans__MeshSmoothing 610 #define __PYX_HAVE_API__mprans__MeshSmoothing 614 #include "numpy/arrayobject.h" 615 #include "numpy/ufuncobject.h" 617 #include "pythread.h" 624 #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) 625 #define CYTHON_WITHOUT_ASSERTIONS 628 typedef struct {PyObject **p;
const char *
s;
const Py_ssize_t
n;
const char* encoding;
629 const char is_unicode;
const char is_str;
const char intern; } __Pyx_StringTabEntry;
631 #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 632 #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 633 #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) 634 #define __PYX_DEFAULT_STRING_ENCODING "" 635 #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString 636 #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize 637 #define __Pyx_uchar_cast(c) ((unsigned char)c) 638 #define __Pyx_long_cast(x) ((long)x) 639 #define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ 640 (sizeof(type) < sizeof(Py_ssize_t)) ||\ 641 (sizeof(type) > sizeof(Py_ssize_t) &&\ 642 likely(v < (type)PY_SSIZE_T_MAX ||\ 643 v == (type)PY_SSIZE_T_MAX) &&\ 644 (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ 645 v == (type)PY_SSIZE_T_MIN))) ||\ 646 (sizeof(type) == sizeof(Py_ssize_t) &&\ 647 (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ 648 v == (type)PY_SSIZE_T_MAX))) ) 649 static CYTHON_INLINE
int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
650 return (
size_t) i < (size_t) limit;
652 #if defined (__cplusplus) && __cplusplus >= 201103L 654 #define __Pyx_sst_abs(value) std::abs(value) 655 #elif SIZEOF_INT >= SIZEOF_SIZE_T 656 #define __Pyx_sst_abs(value) abs(value) 657 #elif SIZEOF_LONG >= SIZEOF_SIZE_T 658 #define __Pyx_sst_abs(value) labs(value) 659 #elif defined (_MSC_VER) 660 #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) 661 #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 662 #define __Pyx_sst_abs(value) llabs(value) 663 #elif defined (__GNUC__) 664 #define __Pyx_sst_abs(value) __builtin_llabs(value) 666 #define __Pyx_sst_abs(value) ((value<0) ? -value : value) 668 static CYTHON_INLINE
const char* __Pyx_PyObject_AsString(PyObject*);
669 static CYTHON_INLINE
const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
670 #define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) 671 #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) 672 #define __Pyx_PyBytes_FromString PyBytes_FromString 673 #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize 674 static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(
const char*);
675 #if PY_MAJOR_VERSION < 3 676 #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString 677 #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize 679 #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString 680 #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize 682 #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) 683 #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) 684 #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) 685 #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) 686 #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) 687 #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) 688 #define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) 689 #define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) 690 #define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) 691 #define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) 692 #define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) 693 #define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) 694 #define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) 695 #define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) 696 #define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) 697 #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) 698 static CYTHON_INLINE
size_t __Pyx_Py_UNICODE_strlen(
const Py_UNICODE *
u) {
699 const Py_UNICODE *u_end =
u;
701 return (
size_t)(u_end - u - 1);
703 #define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) 704 #define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode 705 #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode 706 #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) 707 #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) 708 static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(
long b);
709 static CYTHON_INLINE
int __Pyx_PyObject_IsTrue(PyObject*);
710 static CYTHON_INLINE
int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
711 static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
712 #define __Pyx_PySequence_Tuple(obj)\ 713 (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) 714 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
715 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(
size_t);
716 #if CYTHON_ASSUME_SAFE_MACROS 717 #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) 719 #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) 721 #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) 722 #if PY_MAJOR_VERSION >= 3 723 #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) 725 #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) 727 #define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) 728 #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 729 static int __Pyx_sys_getdefaultencoding_not_ascii;
730 static int __Pyx_init_sys_getdefaultencoding_params(
void) {
732 PyObject* default_encoding = NULL;
733 PyObject* ascii_chars_u = NULL;
734 PyObject* ascii_chars_b = NULL;
735 const char* default_encoding_c;
736 sys = PyImport_ImportModule(
"sys");
738 default_encoding = PyObject_CallMethod(sys, (
char*)
"getdefaultencoding", NULL);
740 if (!default_encoding)
goto bad;
741 default_encoding_c = PyBytes_AsString(default_encoding);
742 if (!default_encoding_c)
goto bad;
743 if (strcmp(default_encoding_c,
"ascii") == 0) {
744 __Pyx_sys_getdefaultencoding_not_ascii = 0;
746 char ascii_chars[128];
748 for (c = 0; c < 128; c++) {
751 __Pyx_sys_getdefaultencoding_not_ascii = 1;
752 ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
753 if (!ascii_chars_u)
goto bad;
754 ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
755 if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
758 "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
762 Py_DECREF(ascii_chars_u);
763 Py_DECREF(ascii_chars_b);
765 Py_DECREF(default_encoding);
768 Py_XDECREF(default_encoding);
769 Py_XDECREF(ascii_chars_u);
770 Py_XDECREF(ascii_chars_b);
774 #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 775 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) 777 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) 778 #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 779 static char* __PYX_DEFAULT_STRING_ENCODING;
780 static int __Pyx_init_sys_getdefaultencoding_params(
void) {
782 PyObject* default_encoding = NULL;
783 char* default_encoding_c;
784 sys = PyImport_ImportModule(
"sys");
786 default_encoding = PyObject_CallMethod(sys, (
char*) (
const char*)
"getdefaultencoding", NULL);
788 if (!default_encoding)
goto bad;
789 default_encoding_c = PyBytes_AsString(default_encoding);
790 if (!default_encoding_c)
goto bad;
791 __PYX_DEFAULT_STRING_ENCODING = (
char*) malloc(strlen(default_encoding_c) + 1);
792 if (!__PYX_DEFAULT_STRING_ENCODING)
goto bad;
793 strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
794 Py_DECREF(default_encoding);
797 Py_XDECREF(default_encoding);
805 #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) 806 #define likely(x) __builtin_expect(!!(x), 1) 807 #define unlikely(x) __builtin_expect(!!(x), 0) 809 #define likely(x) (x) 810 #define unlikely(x) (x) 812 static CYTHON_INLINE
void __Pyx_pretend_to_initialize(
void* ptr) { (void)ptr; }
814 static PyObject *__pyx_m = NULL;
815 static PyObject *__pyx_d;
816 static PyObject *__pyx_b;
817 static PyObject *__pyx_cython_runtime = NULL;
818 static PyObject *__pyx_empty_tuple;
819 static PyObject *__pyx_empty_bytes;
820 static PyObject *__pyx_empty_unicode;
821 static int __pyx_lineno;
822 static int __pyx_clineno = 0;
823 static const char * __pyx_cfilenm= __FILE__;
824 static const char *__pyx_filename;
827 #if !defined(CYTHON_CCOMPLEX) 828 #if defined(__cplusplus) 829 #define CYTHON_CCOMPLEX 1 830 #elif defined(_Complex_I) 831 #define CYTHON_CCOMPLEX 1 833 #define CYTHON_CCOMPLEX 0 843 #if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__) 845 #define _Complex_I 1.0fj 849 static const char *__pyx_f[] = {
850 "proteus/mprans/MeshSmoothing.pyx",
851 "linux/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd",
853 "linux/lib/python3.7/site-packages/Cython/Includes/cpython/type.pxd",
856 struct __pyx_memoryview_obj;
858 struct __pyx_memoryview_obj *memview;
861 Py_ssize_t strides[8];
862 Py_ssize_t suboffsets[8];
863 } __Pyx_memviewslice;
864 #define __Pyx_MemoryView_Len(m) (m.shape[0]) 867 #include <pythread.h> 868 #ifndef CYTHON_ATOMICS 869 #define CYTHON_ATOMICS 1 871 #define __pyx_atomic_int_type int 872 #if CYTHON_ATOMICS && __GNUC__ >= 4 && (__GNUC_MINOR__ > 1 ||\ 873 (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL >= 2)) &&\ 875 #define __pyx_atomic_incr_aligned(value, lock) __sync_fetch_and_add(value, 1) 876 #define __pyx_atomic_decr_aligned(value, lock) __sync_fetch_and_sub(value, 1) 877 #ifdef __PYX_DEBUG_ATOMICS 878 #warning "Using GNU atomics" 880 #elif CYTHON_ATOMICS && defined(_MSC_VER) && 0 882 #undef __pyx_atomic_int_type 883 #define __pyx_atomic_int_type LONG 884 #define __pyx_atomic_incr_aligned(value, lock) InterlockedIncrement(value) 885 #define __pyx_atomic_decr_aligned(value, lock) InterlockedDecrement(value) 886 #ifdef __PYX_DEBUG_ATOMICS 887 #pragma message ("Using MSVC atomics") 889 #elif CYTHON_ATOMICS && (defined(__ICC) || defined(__INTEL_COMPILER)) && 0 890 #define __pyx_atomic_incr_aligned(value, lock) _InterlockedIncrement(value) 891 #define __pyx_atomic_decr_aligned(value, lock) _InterlockedDecrement(value) 892 #ifdef __PYX_DEBUG_ATOMICS 893 #warning "Using Intel atomics" 896 #undef CYTHON_ATOMICS 897 #define CYTHON_ATOMICS 0 898 #ifdef __PYX_DEBUG_ATOMICS 899 #warning "Not using atomics" 902 typedef volatile __pyx_atomic_int_type __pyx_atomic_int;
904 #define __pyx_add_acquisition_count(memview)\ 905 __pyx_atomic_incr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) 906 #define __pyx_sub_acquisition_count(memview)\ 907 __pyx_atomic_decr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) 909 #define __pyx_add_acquisition_count(memview)\ 910 __pyx_add_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) 911 #define __pyx_sub_acquisition_count(memview)\ 912 __pyx_sub_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) 916 #ifndef __PYX_FORCE_INIT_THREADS 917 #define __PYX_FORCE_INIT_THREADS 0 921 #define __Pyx_PyGILState_Ensure PyGILState_Ensure 922 #define __Pyx_PyGILState_Release PyGILState_Release 923 #define __Pyx_FastGIL_Remember() 924 #define __Pyx_FastGIL_Forget() 925 #define __Pyx_FastGilFuncInit() 928 #define IS_UNSIGNED(type) (((type) -1) > 0) 929 struct __Pyx_StructField_;
930 #define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0) 933 struct __Pyx_StructField_* fields;
941 typedef struct __Pyx_StructField_ {
942 __Pyx_TypeInfo* type;
947 __Pyx_StructField* field;
948 size_t parent_offset;
949 } __Pyx_BufFmt_StackElem;
951 __Pyx_StructField root;
952 __Pyx_BufFmt_StackElem* head;
954 size_t new_count, enc_count;
955 size_t struct_alignment;
961 } __Pyx_BufFmt_Context;
971 typedef npy_int8 __pyx_t_5numpy_int8_t;
980 typedef npy_int16 __pyx_t_5numpy_int16_t;
989 typedef npy_int32 __pyx_t_5numpy_int32_t;
998 typedef npy_int64 __pyx_t_5numpy_int64_t;
1007 typedef npy_uint8 __pyx_t_5numpy_uint8_t;
1016 typedef npy_uint16 __pyx_t_5numpy_uint16_t;
1025 typedef npy_uint32 __pyx_t_5numpy_uint32_t;
1034 typedef npy_uint64 __pyx_t_5numpy_uint64_t;
1043 typedef npy_float32 __pyx_t_5numpy_float32_t;
1052 typedef npy_float64 __pyx_t_5numpy_float64_t;
1061 typedef npy_long __pyx_t_5numpy_int_t;
1070 typedef npy_longlong __pyx_t_5numpy_long_t;
1079 typedef npy_longlong __pyx_t_5numpy_longlong_t;
1088 typedef npy_ulong __pyx_t_5numpy_uint_t;
1097 typedef npy_ulonglong __pyx_t_5numpy_ulong_t;
1106 typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
1115 typedef npy_intp __pyx_t_5numpy_intp_t;
1124 typedef npy_uintp __pyx_t_5numpy_uintp_t;
1133 typedef npy_double __pyx_t_5numpy_float_t;
1142 typedef npy_double __pyx_t_5numpy_double_t;
1151 typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
1155 typedef ::std::complex< float > __pyx_t_float_complex;
1157 typedef float _Complex __pyx_t_float_complex;
1160 typedef struct {
float real, imag; } __pyx_t_float_complex;
1162 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(
float,
float);
1167 typedef ::std::complex< double > __pyx_t_double_complex;
1169 typedef double _Complex __pyx_t_double_complex;
1172 typedef struct {
double real, imag; } __pyx_t_double_complex;
1174 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(
double,
double);
1178 struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues;
1179 struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr;
1180 struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr;
1181 struct __pyx_array_obj;
1182 struct __pyx_MemviewEnum_obj;
1183 struct __pyx_memoryview_obj;
1184 struct __pyx_memoryviewslice_obj;
1193 typedef npy_cfloat __pyx_t_5numpy_cfloat_t;
1202 typedef npy_cdouble __pyx_t_5numpy_cdouble_t;
1211 typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t;
1220 typedef npy_cdouble __pyx_t_5numpy_complex_t;
1221 struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesLaplace;
1222 struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesCentroid;
1223 struct __pyx_opt_args_6mprans_13MeshSmoothing_cyUpdateInverseMeanRatioTriangleNodes;
1224 struct __pyx_opt_args_6mprans_13MeshSmoothing_cyGetInverseMeanRatioSingleTriangle;
1225 struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesQuality;
1234 struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesLaplace {
1237 bool smoothBoundaries;
1238 __Pyx_memviewslice fixedNodesBoolArray;
1249 struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesCentroid {
1252 bool smoothBoundaries;
1263 struct __pyx_opt_args_6mprans_13MeshSmoothing_cyUpdateInverseMeanRatioTriangleNodes {
1275 struct __pyx_opt_args_6mprans_13MeshSmoothing_cyGetInverseMeanRatioSingleTriangle {
1287 struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesQuality {
1289 bool apply_directly;
1299 struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues {
1301 int __pyx_v_comm_size;
1312 struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr {
1314 struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues *__pyx_outer_scope;
1329 struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr {
1331 struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues *__pyx_outer_scope;
1346 struct __pyx_array_obj {
1348 struct __pyx_vtabstruct_array *__pyx_vtab;
1354 Py_ssize_t *_strides;
1355 Py_ssize_t itemsize;
1358 void (*callback_free_data)(
void *);
1360 int dtype_is_object;
1371 struct __pyx_MemviewEnum_obj {
1384 struct __pyx_memoryview_obj {
1386 struct __pyx_vtabstruct_memoryview *__pyx_vtab;
1389 PyObject *_array_interface;
1390 PyThread_type_lock lock;
1391 __pyx_atomic_int acquisition_count[2];
1392 __pyx_atomic_int *acquisition_count_aligned_p;
1395 int dtype_is_object;
1396 __Pyx_TypeInfo *typeinfo;
1407 struct __pyx_memoryviewslice_obj {
1408 struct __pyx_memoryview_obj __pyx_base;
1409 __Pyx_memviewslice from_slice;
1410 PyObject *from_object;
1411 PyObject *(*to_object_func)(
char *);
1412 int (*to_dtype_func)(
char *, PyObject *);
1425 struct __pyx_vtabstruct_array {
1426 PyObject *(*get_memview)(
struct __pyx_array_obj *);
1428 static struct __pyx_vtabstruct_array *__pyx_vtabptr_array;
1439 struct __pyx_vtabstruct_memoryview {
1440 char *(*get_item_pointer)(
struct __pyx_memoryview_obj *, PyObject *);
1441 PyObject *(*is_slice)(
struct __pyx_memoryview_obj *, PyObject *);
1442 PyObject *(*setitem_slice_assignment)(
struct __pyx_memoryview_obj *, PyObject *, PyObject *);
1443 PyObject *(*setitem_slice_assign_scalar)(
struct __pyx_memoryview_obj *,
struct __pyx_memoryview_obj *, PyObject *);
1444 PyObject *(*setitem_indexed)(
struct __pyx_memoryview_obj *, PyObject *, PyObject *);
1445 PyObject *(*convert_item_to_object)(
struct __pyx_memoryview_obj *,
char *);
1446 PyObject *(*assign_item_from_object)(
struct __pyx_memoryview_obj *,
char *, PyObject *);
1448 static struct __pyx_vtabstruct_memoryview *__pyx_vtabptr_memoryview;
1459 struct __pyx_vtabstruct__memoryviewslice {
1460 struct __pyx_vtabstruct_memoryview __pyx_base;
1462 static struct __pyx_vtabstruct__memoryviewslice *__pyx_vtabptr__memoryviewslice;
1466 #ifndef CYTHON_REFNANNY 1467 #define CYTHON_REFNANNY 0 1471 void (*INCREF)(
void*, PyObject*, int);
1472 void (*DECREF)(
void*, PyObject*, int);
1473 void (*GOTREF)(
void*, PyObject*, int);
1474 void (*GIVEREF)(
void*, PyObject*, int);
1475 void* (*SetupContext)(
const char*, int,
const char*);
1476 void (*FinishContext)(
void**);
1477 } __Pyx_RefNannyAPIStruct;
1478 static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
1479 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(
const char *modname);
1480 #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; 1482 #define __Pyx_RefNannySetupContext(name, acquire_gil)\ 1484 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ 1485 __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ 1486 PyGILState_Release(__pyx_gilstate_save);\ 1488 __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ 1491 #define __Pyx_RefNannySetupContext(name, acquire_gil)\ 1492 __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) 1494 #define __Pyx_RefNannyFinishContext()\ 1495 __Pyx_RefNanny->FinishContext(&__pyx_refnanny) 1496 #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) 1497 #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) 1498 #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) 1499 #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) 1500 #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) 1501 #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) 1502 #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) 1503 #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) 1505 #define __Pyx_RefNannyDeclarations 1506 #define __Pyx_RefNannySetupContext(name, acquire_gil) 1507 #define __Pyx_RefNannyFinishContext() 1508 #define __Pyx_INCREF(r) Py_INCREF(r) 1509 #define __Pyx_DECREF(r) Py_DECREF(r) 1510 #define __Pyx_GOTREF(r) 1511 #define __Pyx_GIVEREF(r) 1512 #define __Pyx_XINCREF(r) Py_XINCREF(r) 1513 #define __Pyx_XDECREF(r) Py_XDECREF(r) 1514 #define __Pyx_XGOTREF(r) 1515 #define __Pyx_XGIVEREF(r) 1517 #define __Pyx_XDECREF_SET(r, v) do {\ 1518 PyObject *tmp = (PyObject *) r;\ 1519 r = v; __Pyx_XDECREF(tmp);\ 1521 #define __Pyx_DECREF_SET(r, v) do {\ 1522 PyObject *tmp = (PyObject *) r;\ 1523 r = v; __Pyx_DECREF(tmp);\ 1525 #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) 1526 #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) 1529 #if CYTHON_USE_TYPE_SLOTS 1530 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
1532 #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) 1536 static PyObject *__Pyx_GetBuiltinName(PyObject *name);
1539 static void __Pyx_RaiseArgtupleInvalid(
const char* func_name,
int exact,
1540 Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
1543 static void __Pyx_RaiseDoubleKeywordsError(
const char* func_name, PyObject* kw_name);
1546 static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\
1547 PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\
1548 const char* function_name);
1551 #define __Pyx_BUF_MAX_NDIMS %(BUF_MAX_NDIMS)d 1552 #define __Pyx_MEMVIEW_DIRECT 1 1553 #define __Pyx_MEMVIEW_PTR 2 1554 #define __Pyx_MEMVIEW_FULL 4 1555 #define __Pyx_MEMVIEW_CONTIG 8 1556 #define __Pyx_MEMVIEW_STRIDED 16 1557 #define __Pyx_MEMVIEW_FOLLOW 32 1558 #define __Pyx_IS_C_CONTIG 1 1559 #define __Pyx_IS_F_CONTIG 2 1560 static int __Pyx_init_memviewslice(
1561 struct __pyx_memoryview_obj *memview,
1563 __Pyx_memviewslice *memviewslice,
1564 int memview_is_new_reference);
1565 static CYTHON_INLINE
int __pyx_add_acquisition_count_locked(
1566 __pyx_atomic_int *acquisition_count, PyThread_type_lock lock);
1567 static CYTHON_INLINE
int __pyx_sub_acquisition_count_locked(
1568 __pyx_atomic_int *acquisition_count, PyThread_type_lock lock);
1569 #define __pyx_get_slice_count_pointer(memview) (memview->acquisition_count_aligned_p) 1570 #define __pyx_get_slice_count(memview) (*__pyx_get_slice_count_pointer(memview)) 1571 #define __PYX_INC_MEMVIEW(slice, have_gil) __Pyx_INC_MEMVIEW(slice, have_gil, __LINE__) 1572 #define __PYX_XDEC_MEMVIEW(slice, have_gil) __Pyx_XDEC_MEMVIEW(slice, have_gil, __LINE__) 1573 static CYTHON_INLINE
void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *,
int,
int);
1574 static CYTHON_INLINE
void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *,
int,
int);
1577 #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS 1578 #define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) 1579 #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) 1580 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ 1581 (version_var) = __PYX_GET_DICT_VERSION(dict);\ 1582 (cache_var) = (value); 1583 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ 1584 static PY_UINT64_T __pyx_dict_version = 0;\ 1585 static PyObject *__pyx_dict_cached_value = NULL;\ 1586 if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ 1587 (VAR) = __pyx_dict_cached_value;\ 1589 (VAR) = __pyx_dict_cached_value = (LOOKUP);\ 1590 __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ 1593 static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
1594 static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
1595 static CYTHON_INLINE
int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
1597 #define __PYX_GET_DICT_VERSION(dict) (0) 1598 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) 1599 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); 1603 #if CYTHON_USE_DICT_VERSIONS 1604 #define __Pyx_GetModuleGlobalName(var, name) {\ 1605 static PY_UINT64_T __pyx_dict_version = 0;\ 1606 static PyObject *__pyx_dict_cached_value = NULL;\ 1607 (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ 1608 (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ 1609 __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ 1611 #define __Pyx_GetModuleGlobalNameUncached(var, name) {\ 1612 PY_UINT64_T __pyx_dict_version;\ 1613 PyObject *__pyx_dict_cached_value;\ 1614 (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ 1616 static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
1618 #define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) 1619 #define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) 1620 static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
1624 #if CYTHON_FAST_PYCCALL 1625 static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs);
1627 #define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) 1631 #if CYTHON_FAST_PYCALL 1632 #define __Pyx_PyFunction_FastCall(func, args, nargs)\ 1633 __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) 1634 #if 1 || PY_VERSION_HEX < 0x030600B1 1635 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
1637 #define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) 1639 #define __Pyx_BUILD_ASSERT_EXPR(cond)\ 1640 (sizeof(char [1 - 2*!(cond)]) - 1) 1641 #ifndef Py_MEMBER_SIZE 1642 #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) 1644 static size_t __pyx_pyframe_localsplus_offset = 0;
1645 #include "frameobject.h" 1646 #define __Pxy_PyFrame_Initialize_Offsets()\ 1647 ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ 1648 (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) 1649 #define __Pyx_PyFrame_GetLocalsplus(frame)\ 1650 (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) 1654 #if CYTHON_COMPILING_IN_CPYTHON 1655 static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
1657 #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) 1661 static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject*
function, PyObject* arg1, PyObject* arg2);
1664 #if CYTHON_COMPILING_IN_CPYTHON 1665 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
1669 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);
1672 #if !CYTHON_COMPILING_IN_PYPY 1673 static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2,
long intval,
int inplace,
int zerodivision_check);
1675 #define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace, zerodivision_check)\ 1676 (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2)) 1680 #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ 1681 (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ 1682 __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\ 1683 (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\ 1684 __Pyx_GetItemInt_Generic(o, to_py_func(i)))) 1685 #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ 1686 (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ 1687 __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ 1688 (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) 1689 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
1690 int wraparound,
int boundscheck);
1691 #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ 1692 (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ 1693 __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ 1694 (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) 1695 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
1696 int wraparound,
int boundscheck);
1697 static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
1698 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
1699 int is_list,
int wraparound,
int boundscheck);
1702 #if CYTHON_USE_TYPE_SLOTS 1703 static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key);
1705 #define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key) 1709 #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS 1710 static CYTHON_INLINE
int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
1711 PyListObject*
L = (PyListObject*) list;
1712 Py_ssize_t len = Py_SIZE(list);
1713 if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
1715 PyList_SET_ITEM(list, len, x);
1716 Py_SIZE(list) = len+1;
1719 return PyList_Append(list, x);
1722 #define __Pyx_PyList_Append(L,x) PyList_Append(L,x) 1726 static CYTHON_INLINE
int __Pyx_IterFinish(
void);
1729 static CYTHON_INLINE PyObject* __Pyx_set_iterator(PyObject* iterable,
int is_set,
1730 Py_ssize_t* p_orig_length,
int* p_source_is_set);
1731 static CYTHON_INLINE
int __Pyx_set_iter_next(
1732 PyObject* iter_obj, Py_ssize_t orig_length,
1733 Py_ssize_t* ppos, PyObject **value,
1737 static CYTHON_INLINE
int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq,
int eq) {
1738 int result = PySequence_Contains(seq, item);
1739 return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
1743 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list,
int level);
1746 static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);
1749 #if CYTHON_COMPILING_IN_CPYTHON 1750 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
1752 #define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) 1756 #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY 1757 static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
1758 #define __Pyx_PyObject_Dict_GetItem(obj, name)\ 1759 (likely(PyDict_CheckExact(obj)) ?\ 1760 __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name)) 1762 #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key) 1763 #define __Pyx_PyObject_Dict_GetItem(obj, name) PyObject_GetItem(obj, name) 1767 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
1768 PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
1769 PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
1770 int has_cstart,
int has_cstop,
int wraparound);
1773 #define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ 1774 (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ 1775 __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\ 1776 (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\ 1777 __Pyx_SetItemInt_Generic(o, to_py_func(i), v))) 1778 static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *
v);
1779 static CYTHON_INLINE
int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *
v,
1780 int is_list,
int wraparound,
int boundscheck);
1783 #if CYTHON_FAST_THREAD_STATE 1784 #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; 1785 #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; 1786 #define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type 1788 #define __Pyx_PyThreadState_declare 1789 #define __Pyx_PyThreadState_assign 1790 #define __Pyx_PyErr_Occurred() PyErr_Occurred() 1794 #if CYTHON_FAST_THREAD_STATE 1795 #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) 1796 #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) 1797 #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) 1798 #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) 1799 #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) 1800 static CYTHON_INLINE
void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
1801 static CYTHON_INLINE
void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1802 #if CYTHON_COMPILING_IN_CPYTHON 1803 #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) 1805 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) 1808 #define __Pyx_PyErr_Clear() PyErr_Clear() 1809 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) 1810 #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) 1811 #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) 1812 #define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) 1813 #define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) 1814 #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) 1815 #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) 1819 static void __Pyx_WriteUnraisable(
const char *name,
int clineno,
1820 int lineno,
const char *filename,
1821 int full_traceback,
int nogil);
1824 static CYTHON_INLINE
int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);
1830 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);
1833 static CYTHON_INLINE
void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);
1836 static CYTHON_INLINE
void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
1839 static CYTHON_INLINE
void __Pyx_RaiseNoneNotIterableError(
void);
1842 #if CYTHON_USE_EXC_INFO_STACK 1843 static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
1847 #if CYTHON_FAST_THREAD_STATE 1848 #define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) 1849 static CYTHON_INLINE
void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1850 #define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) 1851 static CYTHON_INLINE
void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
1853 #define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) 1854 #define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) 1858 #if CYTHON_FAST_THREAD_STATE 1859 #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) 1860 static CYTHON_INLINE
int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
1862 #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) 1866 #if CYTHON_FAST_THREAD_STATE 1867 #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) 1868 static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1870 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
1874 #define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\ 1875 ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\ 1876 __Pyx__ArgTypeTest(obj, type, name, exact)) 1877 static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type,
const char *name,
int exact);
1880 static CYTHON_INLINE
int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2,
int equals);
1883 static CYTHON_INLINE
int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2,
int equals);
1886 #if PY_MAJOR_VERSION >= 3 1887 #define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals 1889 #define __Pyx_PyString_Equals __Pyx_PyBytes_Equals 1893 #define UNARY_NEG_WOULD_OVERFLOW(x)\ 1894 (((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x))) 1896 static CYTHON_UNUSED
int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info,
int __pyx_v_flags);
1897 static PyObject *__pyx_array_get_memview(
struct __pyx_array_obj *);
1899 static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *);
1902 static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16(
const char *
s, Py_ssize_t size,
const char *errors) {
1904 return PyUnicode_DecodeUTF16(
s, size, errors, &byteorder);
1906 static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16LE(
const char *
s, Py_ssize_t size,
const char *errors) {
1908 return PyUnicode_DecodeUTF16(
s, size, errors, &byteorder);
1910 static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16BE(
const char *
s, Py_ssize_t size,
const char *errors) {
1912 return PyUnicode_DecodeUTF16(
s, size, errors, &byteorder);
1916 static CYTHON_INLINE PyObject* __Pyx_decode_c_string(
1917 const char* cstring, Py_ssize_t start, Py_ssize_t stop,
1918 const char* encoding,
const char* errors,
1919 PyObject* (*decode_func)(
const char *
s, Py_ssize_t size,
const char *errors));
1922 static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *);
1925 #if CYTHON_FAST_THREAD_STATE 1926 #define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb) 1927 static CYTHON_INLINE
void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1929 static CYTHON_INLINE
void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);
1933 #if CYTHON_COMPILING_IN_CPYTHON 1934 #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) 1935 static CYTHON_INLINE
int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
1936 static CYTHON_INLINE
int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
1937 static CYTHON_INLINE
int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
1939 #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) 1940 #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) 1941 #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) 1943 #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) 1945 static CYTHON_UNUSED
int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info,
int __pyx_v_flags);
1947 #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS 1948 static CYTHON_INLINE
int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
1949 PyListObject*
L = (PyListObject*) list;
1950 Py_ssize_t len = Py_SIZE(list);
1951 if (likely(L->allocated > len)) {
1953 PyList_SET_ITEM(list, len, x);
1954 Py_SIZE(list) = len+1;
1957 return PyList_Append(list, x);
1960 #define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) 1964 static CYTHON_INLINE
int __Pyx_PyList_Extend(PyObject*
L, PyObject*
v) {
1965 #if CYTHON_COMPILING_IN_CPYTHON 1966 PyObject* none = _PyList_Extend((PyListObject*)
L, v);
1967 if (unlikely(!none))
1972 return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v);
1977 static CYTHON_INLINE
void __Pyx_RaiseUnboundLocalError(
const char *varname);
1980 static CYTHON_INLINE
int __Pyx_HasAttr(PyObject *, PyObject *);
1983 #if PY_MAJOR_VERSION < 3 1984 #define __Pyx_PyString_Join __Pyx_PyBytes_Join 1985 #define __Pyx_PyBaseString_Join(s, v) (PyUnicode_CheckExact(s) ? PyUnicode_Join(s, v) : __Pyx_PyBytes_Join(s, v)) 1987 #define __Pyx_PyString_Join PyUnicode_Join 1988 #define __Pyx_PyBaseString_Join PyUnicode_Join 1990 #if CYTHON_COMPILING_IN_CPYTHON 1991 #if PY_MAJOR_VERSION < 3 1992 #define __Pyx_PyBytes_Join _PyString_Join 1994 #define __Pyx_PyBytes_Join _PyBytes_Join 1997 static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values);
2001 #if PY_MAJOR_VERSION >= 3 2002 #define __Pyx_PyObject_Unicode(obj)\ 2003 (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj)) 2005 #define __Pyx_PyObject_Unicode(obj)\ 2006 (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Unicode(obj)) 2010 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 2011 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name);
2013 #define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr 2017 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 2018 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name);
2020 #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr 2024 static int __Pyx_SetVtable(PyObject *dict,
void *vtable);
2027 static int __Pyx_setup_reduce(PyObject* type_obj);
2030 #ifndef __PYX_HAVE_RT_ImportType_proto 2031 #define __PYX_HAVE_RT_ImportType_proto 2032 enum __Pyx_ImportType_CheckSize {
2033 __Pyx_ImportType_CheckSize_Error = 0,
2034 __Pyx_ImportType_CheckSize_Warn = 1,
2035 __Pyx_ImportType_CheckSize_Ignore = 2
2037 static PyTypeObject *__Pyx_ImportType(PyObject* module,
const char *module_name,
const char *class_name,
size_t size,
enum __Pyx_ImportType_CheckSize check_size);
2041 #ifdef CYTHON_CLINE_IN_TRACEBACK 2042 #define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) 2044 static int __Pyx_CLineForTraceback(PyThreadState *tstate,
int c_line);
2049 PyCodeObject* code_object;
2051 } __Pyx_CodeObjectCacheEntry;
2052 struct __Pyx_CodeObjectCache {
2055 __Pyx_CodeObjectCacheEntry* entries;
2057 static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
2058 static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries,
int count,
int code_line);
2059 static PyCodeObject *__pyx_find_code_object(
int code_line);
2060 static void __pyx_insert_code_object(
int code_line, PyCodeObject* code_object);
2063 static void __Pyx_AddTraceback(
const char *funcname,
int c_line,
2064 int py_line,
const char *filename);
2066 #if PY_MAJOR_VERSION < 3 2067 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view,
int flags);
2068 static void __Pyx_ReleaseBuffer(Py_buffer *view);
2070 #define __Pyx_GetBuffer PyObject_GetBuffer 2071 #define __Pyx_ReleaseBuffer PyBuffer_Release 2077 Py_ssize_t shape, strides, suboffsets;
2078 } __Pyx_Buf_DimInfo;
2084 __Pyx_Buffer *rcbuffer;
2086 __Pyx_Buf_DimInfo diminfo[8];
2087 } __Pyx_LocalBuf_ND;
2090 static int __pyx_memviewslice_is_contig(
const __Pyx_memviewslice mvs,
char order,
int ndim);
2093 static int __pyx_slices_overlap(__Pyx_memviewslice *slice1,
2094 __Pyx_memviewslice *slice2,
2095 int ndim,
size_t itemsize);
2098 static CYTHON_INLINE PyObject *__pyx_capsule_create(
void *p,
const char *sig);
2101 static CYTHON_INLINE
int __Pyx_Is_Little_Endian(
void);
2104 static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx,
const char* ts);
2105 static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
2106 __Pyx_BufFmt_StackElem* stack,
2107 __Pyx_TypeInfo* type);
2110 static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b);
2113 static int __Pyx_ValidateAndInit_memviewslice(
2118 __Pyx_TypeInfo *dtype,
2119 __Pyx_BufFmt_StackElem stack[],
2120 __Pyx_memviewslice *memviewslice,
2121 PyObject *original_obj);
2124 static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_double(PyObject *,
int writable_flag);
2127 static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_int(PyObject *,
int writable_flag);
2130 static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_double(PyObject *,
int writable_flag);
2133 static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_int(PyObject *,
int writable_flag);
2136 static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsdsdsds_double(PyObject *,
int writable_flag);
2139 static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsdsds_double(PyObject *,
int writable_flag);
2142 static CYTHON_INLINE PyObject *__pyx_memview_get_double(
const char *itemp);
2143 static CYTHON_INLINE
int __pyx_memview_set_double(
const char *itemp, PyObject *obj);
2146 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(
int value);
2149 static CYTHON_INLINE PyObject *__pyx_memview_get_int(
const char *itemp);
2150 static CYTHON_INLINE
int __pyx_memview_set_int(
const char *itemp, PyObject *obj);
2153 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(
long value);
2158 #define __Pyx_CREAL(z) ((z).real()) 2159 #define __Pyx_CIMAG(z) ((z).imag()) 2161 #define __Pyx_CREAL(z) (__real__(z)) 2162 #define __Pyx_CIMAG(z) (__imag__(z)) 2165 #define __Pyx_CREAL(z) ((z).real) 2166 #define __Pyx_CIMAG(z) ((z).imag) 2168 #if defined(__cplusplus) && CYTHON_CCOMPLEX\ 2169 && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103) 2170 #define __Pyx_SET_CREAL(z,x) ((z).real(x)) 2171 #define __Pyx_SET_CIMAG(z,y) ((z).imag(y)) 2173 #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x) 2174 #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y) 2179 #define __Pyx_c_eq_float(a, b) ((a)==(b)) 2180 #define __Pyx_c_sum_float(a, b) ((a)+(b)) 2181 #define __Pyx_c_diff_float(a, b) ((a)-(b)) 2182 #define __Pyx_c_prod_float(a, b) ((a)*(b)) 2183 #define __Pyx_c_quot_float(a, b) ((a)/(b)) 2184 #define __Pyx_c_neg_float(a) (-(a)) 2186 #define __Pyx_c_is_zero_float(z) ((z)==(float)0) 2187 #define __Pyx_c_conj_float(z) (::std::conj(z)) 2189 #define __Pyx_c_abs_float(z) (::std::abs(z)) 2190 #define __Pyx_c_pow_float(a, b) (::std::pow(a, b)) 2193 #define __Pyx_c_is_zero_float(z) ((z)==0) 2194 #define __Pyx_c_conj_float(z) (conjf(z)) 2196 #define __Pyx_c_abs_float(z) (cabsf(z)) 2197 #define __Pyx_c_pow_float(a, b) (cpowf(a, b)) 2201 static CYTHON_INLINE
int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex);
2202 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex);
2203 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex);
2204 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex);
2205 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex);
2206 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex);
2207 static CYTHON_INLINE
int __Pyx_c_is_zero_float(__pyx_t_float_complex);
2208 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex);
2210 static CYTHON_INLINE
float __Pyx_c_abs_float(__pyx_t_float_complex);
2211 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex);
2217 #define __Pyx_c_eq_double(a, b) ((a)==(b)) 2218 #define __Pyx_c_sum_double(a, b) ((a)+(b)) 2219 #define __Pyx_c_diff_double(a, b) ((a)-(b)) 2220 #define __Pyx_c_prod_double(a, b) ((a)*(b)) 2221 #define __Pyx_c_quot_double(a, b) ((a)/(b)) 2222 #define __Pyx_c_neg_double(a) (-(a)) 2224 #define __Pyx_c_is_zero_double(z) ((z)==(double)0) 2225 #define __Pyx_c_conj_double(z) (::std::conj(z)) 2227 #define __Pyx_c_abs_double(z) (::std::abs(z)) 2228 #define __Pyx_c_pow_double(a, b) (::std::pow(a, b)) 2231 #define __Pyx_c_is_zero_double(z) ((z)==0) 2232 #define __Pyx_c_conj_double(z) (conj(z)) 2234 #define __Pyx_c_abs_double(z) (cabs(z)) 2235 #define __Pyx_c_pow_double(a, b) (cpow(a, b)) 2239 static CYTHON_INLINE
int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex);
2240 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex);
2241 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex);
2242 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex);
2243 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex);
2244 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex);
2245 static CYTHON_INLINE
int __Pyx_c_is_zero_double(__pyx_t_double_complex);
2246 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex);
2248 static CYTHON_INLINE
double __Pyx_c_abs_double(__pyx_t_double_complex);
2249 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex);
2254 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(
enum NPY_TYPES value);
2257 static __Pyx_memviewslice
2258 __pyx_memoryview_copy_new_contig(
const __Pyx_memviewslice *from_mvs,
2259 const char *mode,
int ndim,
2260 size_t sizeof_dtype,
int contig_flag,
2261 int dtype_is_object);
2264 static CYTHON_INLINE
int __Pyx_PyInt_As_int(PyObject *);
2267 struct __pyx_typeinfo_string {
2270 static struct __pyx_typeinfo_string __Pyx_TypeInfoToFormat(__Pyx_TypeInfo *type);
2273 static CYTHON_INLINE
long __Pyx_PyInt_As_long(PyObject *);
2276 #define __pyx_memoryview_copy_slice_d_dc_double_c(slice)\ 2277 __pyx_memoryview_copy_new_contig(&slice, "c", 2,\ 2278 sizeof(double), (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT),\ 2282 #define __pyx_memoryview_copy_slice_dcd__double_f(slice)\ 2283 __pyx_memoryview_copy_new_contig(&slice, "fortran", 2,\ 2284 sizeof(double), (PyBUF_F_CONTIGUOUS | PyBUF_FORMAT),\ 2288 static CYTHON_INLINE
char __Pyx_PyInt_As_char(PyObject *);
2291 static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);
2294 static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);
2297 static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg);
2300 typedef PyObject *(*__pyx_coroutine_body_t)(PyObject *, PyThreadState *, PyObject *);
2301 #if CYTHON_USE_EXC_INFO_STACK 2302 #define __Pyx_ExcInfoStruct _PyErr_StackItem 2306 PyObject *exc_value;
2307 PyObject *exc_traceback;
2308 } __Pyx_ExcInfoStruct;
2312 __pyx_coroutine_body_t body;
2314 __Pyx_ExcInfoStruct gi_exc_state;
2315 PyObject *gi_weakreflist;
2317 PyObject *yieldfrom;
2319 PyObject *gi_qualname;
2320 PyObject *gi_modulename;
2324 } __pyx_CoroutineObject;
2325 static __pyx_CoroutineObject *__Pyx__Coroutine_New(
2326 PyTypeObject *type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
2327 PyObject *name, PyObject *qualname, PyObject *module_name);
2328 static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
2329 __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
2330 PyObject *name, PyObject *qualname, PyObject *module_name);
2331 static CYTHON_INLINE
void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *
self);
2332 static int __Pyx_Coroutine_clear(PyObject *
self);
2333 static PyObject *__Pyx_Coroutine_Send(PyObject *
self, PyObject *value);
2334 static PyObject *__Pyx_Coroutine_Close(PyObject *
self);
2335 static PyObject *__Pyx_Coroutine_Throw(PyObject *gen, PyObject *args);
2336 #if CYTHON_USE_EXC_INFO_STACK 2337 #define __Pyx_Coroutine_SwapException(self) 2338 #define __Pyx_Coroutine_ResetAndClearException(self) __Pyx_Coroutine_ExceptionClear(&(self)->gi_exc_state) 2340 #define __Pyx_Coroutine_SwapException(self) {\ 2341 __Pyx_ExceptionSwap(&(self)->gi_exc_state.exc_type, &(self)->gi_exc_state.exc_value, &(self)->gi_exc_state.exc_traceback);\ 2342 __Pyx_Coroutine_ResetFrameBackpointer(&(self)->gi_exc_state);\ 2344 #define __Pyx_Coroutine_ResetAndClearException(self) {\ 2345 __Pyx_ExceptionReset((self)->gi_exc_state.exc_type, (self)->gi_exc_state.exc_value, (self)->gi_exc_state.exc_traceback);\ 2346 (self)->gi_exc_state.exc_type = (self)->gi_exc_state.exc_value = (self)->gi_exc_state.exc_traceback = NULL;\ 2349 #if CYTHON_FAST_THREAD_STATE 2350 #define __Pyx_PyGen_FetchStopIterationValue(pvalue)\ 2351 __Pyx_PyGen__FetchStopIterationValue(__pyx_tstate, pvalue) 2353 #define __Pyx_PyGen_FetchStopIterationValue(pvalue)\ 2354 __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, pvalue) 2356 static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *tstate, PyObject **pvalue);
2357 static CYTHON_INLINE
void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state);
2360 static PyObject* __Pyx_Coroutine_patch_module(PyObject* module,
const char* py_code);
2363 static int __Pyx_patch_abc(
void);
2366 #define __Pyx_Generator_USED 2367 static PyTypeObject *__pyx_GeneratorType = 0;
2368 #define __Pyx_Generator_CheckExact(obj) (Py_TYPE(obj) == __pyx_GeneratorType) 2369 #define __Pyx_Generator_New(body, code, closure, name, qualname, module_name)\ 2370 __Pyx__Coroutine_New(__pyx_GeneratorType, body, code, closure, name, qualname, module_name) 2371 static PyObject *__Pyx_Generator_Next(PyObject *
self);
2372 static int __pyx_Generator_init(
void);
2375 static int __Pyx_check_binary_version(
void);
2378 static int __Pyx_ExportFunction(
const char *name,
void (*
f)(
void),
const char *sig);
2381 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);
2383 static PyObject *__pyx_array_get_memview(
struct __pyx_array_obj *__pyx_v_self);
2384 static char *__pyx_memoryview_get_item_pointer(
struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index);
2385 static PyObject *__pyx_memoryview_is_slice(
struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj);
2386 static PyObject *__pyx_memoryview_setitem_slice_assignment(
struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src);
2387 static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(
struct __pyx_memoryview_obj *__pyx_v_self,
struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value);
2388 static PyObject *__pyx_memoryview_setitem_indexed(
struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value);
2389 static PyObject *__pyx_memoryview_convert_item_to_object(
struct __pyx_memoryview_obj *__pyx_v_self,
char *__pyx_v_itemp);
2390 static PyObject *__pyx_memoryview_assign_item_from_object(
struct __pyx_memoryview_obj *__pyx_v_self,
char *__pyx_v_itemp, PyObject *__pyx_v_value);
2391 static PyObject *__pyx_memoryviewslice_convert_item_to_object(
struct __pyx_memoryviewslice_obj *__pyx_v_self,
char *__pyx_v_itemp);
2392 static PyObject *__pyx_memoryviewslice_assign_item_from_object(
struct __pyx_memoryviewslice_obj *__pyx_v_self,
char *__pyx_v_itemp, PyObject *__pyx_v_value);
2395 static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t,
char *,
char *,
char *);
2408 static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;
2421 static PyTypeObject *__pyx_ptype_5numpy_dtype = 0;
2422 static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0;
2423 static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0;
2424 static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0;
2425 static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0;
2426 static CYTHON_INLINE
char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *,
char *,
char *,
int *);
2433 static PyTypeObject *__pyx_ptype_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues = 0;
2434 static PyTypeObject *__pyx_ptype_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr = 0;
2435 static PyTypeObject *__pyx_ptype_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr = 0;
2436 static PyTypeObject *__pyx_array_type = 0;
2437 static PyTypeObject *__pyx_MemviewEnum_type = 0;
2438 static PyTypeObject *__pyx_memoryview_type = 0;
2439 static PyTypeObject *__pyx_memoryviewslice_type = 0;
2440 static PyObject *
generic = 0;
2441 static PyObject *strided = 0;
2442 static PyObject *indirect = 0;
2443 static PyObject *contiguous = 0;
2444 static PyObject *indirect_contiguous = 0;
2445 static int __pyx_memoryview_thread_locks_used;
2446 static PyThread_type_lock __pyx_memoryview_thread_locks[8];
2447 static void __pyx_f_6mprans_13MeshSmoothing_cySmoothNodesLaplace(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int,
int,
struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesLaplace *__pyx_optional_args);
2448 static void __pyx_f_6mprans_13MeshSmoothing_cySmoothNodesCentroid(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int, __Pyx_memviewslice,
struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesCentroid *__pyx_optional_args);
2449 static void __pyx_f_6mprans_13MeshSmoothing_cyUpdateDilationElements(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int);
2450 static void __pyx_f_6mprans_13MeshSmoothing_cyUpdateDistortionElements(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int,
int);
2451 static void __pyx_f_6mprans_13MeshSmoothing_cyUpdateInverseMeanRatioTriangleNodes(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int,
int,
struct __pyx_opt_args_6mprans_13MeshSmoothing_cyUpdateInverseMeanRatioTriangleNodes *__pyx_optional_args);
2452 static void __pyx_f_6mprans_13MeshSmoothing_cyUpdateInverseMeanRatioTriangleElements(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int);
2453 static double __pyx_f_6mprans_13MeshSmoothing_cyGetInverseMeanRatioSingleTriangle(
int, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
struct __pyx_opt_args_6mprans_13MeshSmoothing_cyGetInverseMeanRatioSingleTriangle *__pyx_optional_args);
2454 static __Pyx_memviewslice __pyx_f_6mprans_13MeshSmoothing_cySmoothNodesQuality(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesQuality *__pyx_optional_args);
2455 static int __pyx_f_6mprans_13MeshSmoothing_pyxGetLocalNearestNode(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int);
2456 static int __pyx_f_6mprans_13MeshSmoothing_pyxGetLocalNearestElement(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int);
2457 static __Pyx_memviewslice __pyx_f_6mprans_13MeshSmoothing_pyxGetLocalNearestElementIntersection(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int);
2458 static int __pyx_f_6mprans_13MeshSmoothing_pyxGetLocalNearestElementAroundNode(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int);
2459 static void __pyx_f_6mprans_13MeshSmoothing_pyxUpdateElementBoundaryNormalsTetra(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int);
2460 static void __pyx_f_6mprans_13MeshSmoothing_pyxUpdateElementBoundaryNormalsTriangle(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int);
2461 static void __pyx_f_6mprans_13MeshSmoothing_cyUpdateElementVolumesTriangle(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int);
2462 static void __pyx_f_6mprans_13MeshSmoothing_cyUpdateElementVolumesTetra(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int);
2463 static void __pyx_f_6mprans_13MeshSmoothing_cyUpdateElementBarycenters(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int);
2464 static PyArrayObject *__pyx_f_6mprans_13MeshSmoothing_cyGetCornerNodesTriangle(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int);
2465 static __Pyx_memviewslice __pyx_f_6mprans_13MeshSmoothing_cyCheckOwnedVariable(
int,
int,
int, __Pyx_memviewslice, __Pyx_memviewslice);
2466 static __Pyx_memviewslice __pyx_f_6mprans_13MeshSmoothing_cyScalarRecoveryAtNodes(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice);
2467 static __Pyx_memviewslice __pyx_f_6mprans_13MeshSmoothing_cyScalarRecoveryAtNodesWeighted(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int);
2468 static __Pyx_memviewslice __pyx_f_6mprans_13MeshSmoothing_cyVectorRecoveryAtNodesWeighted(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int);
2469 static __Pyx_memviewslice __pyx_f_6mprans_13MeshSmoothing_cyVectorRecoveryAtNodes(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice,
int);
2470 static void __pyx_f_6mprans_13MeshSmoothing_cyFindBoundaryDirectionTriangle(__Pyx_memviewslice,
int, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice);
2471 static void __pyx_f_6mprans_13MeshSmoothing_cyFindBoundaryDirectionTetra(__Pyx_memviewslice,
int, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice);
2472 static double __pyx_f_6mprans_13MeshSmoothing_cyGetElementVolumeTriangle(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice);
2473 static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t,
char *,
char *,
char *);
2474 static void *__pyx_align_pointer(
void *,
size_t);
2475 static PyObject *__pyx_memoryview_new(PyObject *,
int,
int, __Pyx_TypeInfo *);
2476 static CYTHON_INLINE
int __pyx_memoryview_check(PyObject *);
2477 static PyObject *_unellipsify(PyObject *,
int);
2478 static PyObject *assert_direct_dimensions(Py_ssize_t *,
int);
2479 static struct __pyx_memoryview_obj *__pyx_memview_slice(
struct __pyx_memoryview_obj *, PyObject *);
2480 static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *, Py_ssize_t, Py_ssize_t, Py_ssize_t,
int,
int,
int *, Py_ssize_t, Py_ssize_t, Py_ssize_t,
int,
int,
int,
int);
2481 static char *__pyx_pybuffer_index(Py_buffer *,
char *, Py_ssize_t, Py_ssize_t);
2482 static int __pyx_memslice_transpose(__Pyx_memviewslice *);
2483 static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice,
int, PyObject *(*)(
char *),
int (*)(
char *, PyObject *),
int);
2484 static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(
struct __pyx_memoryview_obj *, __Pyx_memviewslice *);
2485 static void __pyx_memoryview_slice_copy(
struct __pyx_memoryview_obj *, __Pyx_memviewslice *);
2486 static PyObject *__pyx_memoryview_copy_object(
struct __pyx_memoryview_obj *);
2487 static PyObject *__pyx_memoryview_copy_object_from_slice(
struct __pyx_memoryview_obj *, __Pyx_memviewslice *);
2488 static Py_ssize_t abs_py_ssize_t(Py_ssize_t);
2489 static char __pyx_get_best_slice_order(__Pyx_memviewslice *,
int);
2490 static void _copy_strided_to_strided(
char *, Py_ssize_t *,
char *, Py_ssize_t *, Py_ssize_t *, Py_ssize_t *,
int,
size_t);
2491 static void copy_strided_to_strided(__Pyx_memviewslice *, __Pyx_memviewslice *,
int,
size_t);
2492 static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *,
int);
2493 static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *, Py_ssize_t *, Py_ssize_t,
int,
char);
2494 static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *, __Pyx_memviewslice *,
char,
int);
2495 static int __pyx_memoryview_err_extents(
int, Py_ssize_t, Py_ssize_t);
2496 static int __pyx_memoryview_err_dim(PyObject *,
char *,
int);
2497 static int __pyx_memoryview_err(PyObject *,
char *);
2498 static int __pyx_memoryview_copy_contents(__Pyx_memviewslice, __Pyx_memviewslice,
int,
int,
int);
2499 static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *,
int,
int);
2500 static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *,
int,
int,
int);
2501 static void __pyx_memoryview_refcount_objects_in_slice_with_gil(
char *, Py_ssize_t *, Py_ssize_t *,
int,
int);
2502 static void __pyx_memoryview_refcount_objects_in_slice(
char *, Py_ssize_t *, Py_ssize_t *,
int,
int);
2503 static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *,
int,
size_t,
void *,
int);
2504 static void __pyx_memoryview__slice_assign_scalar(
char *, Py_ssize_t *, Py_ssize_t *,
int,
size_t,
void *);
2505 static PyObject *__pyx_unpickle_Enum__set_state(
struct __pyx_MemviewEnum_obj *, PyObject *);
2506 static PyObject *__pyx_format_from_typeinfo(__Pyx_TypeInfo *);
2507 static __Pyx_TypeInfo __Pyx_TypeInfo_int = {
"int", NULL,
sizeof(int), { 0 }, 0, IS_UNSIGNED(
int) ?
'U' :
'I', IS_UNSIGNED(
int), 0 };
2508 static __Pyx_TypeInfo __Pyx_TypeInfo_double = {
"double", NULL,
sizeof(double), { 0 }, 0,
'R', 0, 0 };
2509 #define __Pyx_MODULE_NAME "mprans.MeshSmoothing" 2510 extern int __pyx_module_is_main_mprans__MeshSmoothing;
2511 int __pyx_module_is_main_mprans__MeshSmoothing = 0;
2514 static PyObject *__pyx_builtin_range;
2515 static PyObject *__pyx_builtin_enumerate;
2516 static PyObject *__pyx_builtin_ValueError;
2517 static PyObject *__pyx_builtin_RuntimeError;
2518 static PyObject *__pyx_builtin_ImportError;
2519 static PyObject *__pyx_builtin_MemoryError;
2520 static PyObject *__pyx_builtin_TypeError;
2521 static PyObject *__pyx_builtin_Ellipsis;
2522 static PyObject *__pyx_builtin_id;
2523 static PyObject *__pyx_builtin_IndexError;
2524 static const char __pyx_k_O[] =
"O";
2525 static const char __pyx_k_T[] =
"T{";
2526 static const char __pyx_k_c[] =
"c";
2527 static const char __pyx_k_i[] =
"i";
2528 static const char __pyx_k_s[] =
"(%s)";
2529 static const char __pyx_k_x[] =
"x";
2530 static const char __pyx_k_y[] =
"y";
2531 static const char __pyx_k_z[] =
"z";
2532 static const char __pyx_k_eN[] =
"eN";
2533 static const char __pyx_k_iN[] =
"iN";
2534 static const char __pyx_k_id[] =
"id";
2535 static const char __pyx_k_ii[] =
"ii";
2536 static const char __pyx_k_ir[] =
"ir";
2537 static const char __pyx_k_nA[] =
"nA";
2538 static const char __pyx_k_nB[] =
"nB";
2539 static const char __pyx_k_nC[] =
"nC";
2540 static const char __pyx_k_nd[] =
"nd";
2541 static const char __pyx_k_np[] =
"np";
2542 static const char __pyx_k_op[] =
"op";
2543 static const char __pyx_k_x2[] =
"x2";
2544 static const char __pyx_k_xi[] =
"xi";
2545 static const char __pyx_k_y2[] =
"y2";
2546 static const char __pyx_k_z2[] =
"z2";
2547 static const char __pyx_k_INT[] =
"INT";
2548 static const char __pyx_k_MPI[] =
"MPI";
2549 static const char __pyx_k_SUM[] =
"SUM";
2550 static const char __pyx_k__31[] =
"^";
2551 static const char __pyx_k__32[] =
"";
2552 static const char __pyx_k__33[] =
":";
2553 static const char __pyx_k__34[] =
"}";
2554 static const char __pyx_k__35[] =
",";
2555 static const char __pyx_k_dot[] =
"dot";
2556 static const char __pyx_k_get[] =
"get";
2557 static const char __pyx_k_inv[] =
"inv";
2558 static const char __pyx_k_new[] =
"__new__";
2559 static const char __pyx_k_obj[] =
"obj";
2560 static const char __pyx_k_Comm[] =
"Comm";
2561 static const char __pyx_k_args[] =
"args_";
2562 static const char __pyx_k_base[] =
"base";
2563 static const char __pyx_k_comm[] =
"comm";
2564 static const char __pyx_k_dict[] =
"__dict__";
2565 static const char __pyx_k_disp[] =
"disp";
2566 static const char __pyx_k_join[] =
"join";
2567 static const char __pyx_k_main[] =
"__main__";
2568 static const char __pyx_k_mesh[] =
"mesh";
2569 static const char __pyx_k_mode[] =
"mode";
2570 static const char __pyx_k_name[] =
"name";
2571 static const char __pyx_k_ndim[] =
"ndim";
2572 static const char __pyx_k_node[] =
"node";
2573 static const char __pyx_k_pack[] =
"pack";
2574 static const char __pyx_k_rank[] =
"rank";
2575 static const char __pyx_k_root[] =
"root";
2576 static const char __pyx_k_send[] =
"send";
2577 static const char __pyx_k_size[] =
"size";
2578 static const char __pyx_k_step[] =
"step";
2579 static const char __pyx_k_stop[] =
"stop";
2580 static const char __pyx_k_test[] =
"__test__";
2581 static const char __pyx_k_ASCII[] =
"ASCII";
2582 static const char __pyx_k_alpha[] =
"alpha";
2583 static const char __pyx_k_array[] =
"array";
2584 static const char __pyx_k_class[] =
"__class__";
2585 static const char __pyx_k_close[] =
"close";
2586 static const char __pyx_k_dtype[] =
"dtype";
2587 static const char __pyx_k_error[] =
"error";
2588 static const char __pyx_k_flags[] =
"flags";
2589 static const char __pyx_k_int32[] =
"int32";
2590 static const char __pyx_k_maxit[] =
"maxit";
2591 static const char __pyx_k_node0[] =
"node0";
2592 static const char __pyx_k_numpy[] =
"numpy";
2593 static const char __pyx_k_range[] =
"range";
2594 static const char __pyx_k_shape[] =
"shape";
2595 static const char __pyx_k_start[] =
"start";
2596 static const char __pyx_k_throw[] =
"throw";
2597 static const char __pyx_k_zeros[] =
"zeros";
2598 static const char __pyx_k_Commit[] =
"Commit";
2599 static const char __pyx_k_DOUBLE[] =
"DOUBLE";
2600 static const char __pyx_k_append[] =
"append";
2601 static const char __pyx_k_args_2[] =
"args";
2602 static const char __pyx_k_astype[] =
"astype";
2603 static const char __pyx_k_coords[] =
"coords";
2604 static const char __pyx_k_double[] =
"double";
2605 static const char __pyx_k_encode[] =
"encode";
2606 static const char __pyx_k_format[] =
"format";
2607 static const char __pyx_k_import[] =
"__import__";
2608 static const char __pyx_k_linalg[] =
"linalg";
2609 static const char __pyx_k_mpi4py[] =
"mpi4py";
2610 static const char __pyx_k_nNodes[] =
"nNodes";
2611 static const char __pyx_k_name_2[] =
"__name__";
2612 static const char __pyx_k_pickle[] =
"pickle";
2613 static const char __pyx_k_reduce[] =
"__reduce__";
2614 static const char __pyx_k_result[] =
"result";
2615 static const char __pyx_k_struct[] =
"struct";
2616 static const char __pyx_k_sumtot[] =
"sumtot";
2617 static const char __pyx_k_unpack[] =
"unpack";
2618 static const char __pyx_k_update[] =
"update";
2619 static const char __pyx_k_Gatherv[] =
"Gatherv";
2620 static const char __pyx_k_J_array[] =
"J_array";
2621 static const char __pyx_k_eOffset[] =
"eOffset";
2622 static const char __pyx_k_fortran[] =
"fortran";
2623 static const char __pyx_k_genexpr[] =
"genexpr";
2624 static const char __pyx_k_memview[] =
"memview";
2625 static const char __pyx_k_my_rank[] =
"my_rank";
2626 static const char __pyx_k_my_size[] =
"my_size";
2627 static const char __pyx_k_proteus[] =
"proteus";
2628 static const char __pyx_k_scalars[] =
"scalars";
2629 static const char __pyx_k_vectors[] =
"vectors";
2630 static const char __pyx_k_Ellipsis[] =
"Ellipsis";
2631 static const char __pyx_k_datatype[] =
"datatype";
2632 static const char __pyx_k_dilation[] =
"dilation";
2633 static const char __pyx_k_femSpace[] =
"femSpace";
2634 static const char __pyx_k_getstate[] =
"__getstate__";
2635 static const char __pyx_k_itemsize[] =
"itemsize";
2636 static const char __pyx_k_logEvent[] =
"logEvent";
2637 static const char __pyx_k_new_rank[] =
"new_rank";
2638 static const char __pyx_k_pyx_type[] =
"__pyx_type";
2639 static const char __pyx_k_setstate[] =
"__setstate__";
2640 static const char __pyx_k_tompi4py[] =
"tompi4py";
2641 static const char __pyx_k_TypeError[] =
"TypeError";
2642 static const char __pyx_k_allreduce[] =
"allreduce";
2643 static const char __pyx_k_arg_2rank[] =
"arg_2rank";
2644 static const char __pyx_k_arg_shape[] =
"arg_shape";
2645 static const char __pyx_k_comm_size[] =
"comm_size";
2646 static const char __pyx_k_counts_in[] =
"counts_in";
2647 static const char __pyx_k_enumerate[] =
"enumerate";
2648 static const char __pyx_k_nElements[] =
"nElements";
2649 static const char __pyx_k_nodeArray[] =
"nodeArray_";
2650 static const char __pyx_k_onElement[] =
"onElement";
2651 static const char __pyx_k_pyx_state[] =
"__pyx_state";
2652 static const char __pyx_k_rank_recv[] =
"rank_recv";
2653 static const char __pyx_k_reduce_ex[] =
"__reduce_ex__";
2654 static const char __pyx_k_transpose[] =
"transpose";
2655 static const char __pyx_k_IndexError[] =
"IndexError";
2656 static const char __pyx_k_ValueError[] =
"ValueError";
2657 static const char __pyx_k_array_size[] =
"array_size";
2658 static const char __pyx_k_counts_out[] =
"counts_out";
2659 static const char __pyx_k_detJ_array[] =
"detJ_array";
2660 static const char __pyx_k_distortion[] =
"distortion";
2661 static const char __pyx_k_el_average[] =
"el_average";
2662 static const char __pyx_k_nearest_eN[] =
"nearest_eN";
2663 static const char __pyx_k_pyx_result[] =
"__pyx_result";
2664 static const char __pyx_k_pyx_vtable[] =
"__pyx_vtable__";
2665 static const char __pyx_k_zeros_like[] =
"zeros_like";
2666 static const char __pyx_k_ImportError[] =
"ImportError";
2667 static const char __pyx_k_MemoryError[] =
"MemoryError";
2668 static const char __pyx_k_PickleError[] =
"PickleError";
2669 static const char __pyx_k_elementMaps[] =
"elementMaps";
2670 static const char __pyx_k_nodeArray_2[] =
"nodeArray";
2671 static const char __pyx_k_nodes_2rank[] =
"nodes_2rank";
2672 static const char __pyx_k_RuntimeError[] =
"RuntimeError";
2673 static const char __pyx_k_arg_2doArray[] =
"arg_2doArray";
2674 static const char __pyx_k_nNodes_owned[] =
"nNodes_owned";
2675 static const char __pyx_k_pyx_checksum[] =
"__pyx_checksum";
2676 static const char __pyx_k_shape_factor[] =
"shape_factor";
2677 static const char __pyx_k_simultaneous[] =
"simultaneous";
2678 static const char __pyx_k_stringsource[] =
"stringsource";
2679 static const char __pyx_k_IMRNodesArray[] =
"IMRNodesArray_";
2680 static const char __pyx_k_arg_shape_len[] =
"arg_shape_len";
2681 static const char __pyx_k_nNodes_global[] =
"nNodes_global";
2682 static const char __pyx_k_nodeStarArray[] =
"nodeStarArray";
2683 static const char __pyx_k_node_new_rank[] =
"node_new_rank";
2684 static const char __pyx_k_pyx_getbuffer[] =
"__pyx_getbuffer";
2685 static const char __pyx_k_reduce_cython[] =
"__reduce_cython__";
2686 static const char __pyx_k_apply_directly[] =
"apply_directly";
2687 static const char __pyx_k_arg_shape_copy[] =
"arg_shape_copy";
2688 static const char __pyx_k_nodes_2doArray[] =
"nodes_2doArray";
2689 static const char __pyx_k_View_MemoryView[] =
"View.MemoryView";
2690 static const char __pyx_k_allocate_buffer[] =
"allocate_buffer";
2691 static const char __pyx_k_checkedElements[] =
"checkedElements";
2692 static const char __pyx_k_dtype_is_object[] =
"dtype_is_object";
2693 static const char __pyx_k_getInverseValue[] =
"getInverseValue";
2694 static const char __pyx_k_getLocalElement[] =
"getLocalElement";
2695 static const char __pyx_k_nodeStarOffsets[] =
"nodeStarOffsets";
2696 static const char __pyx_k_nodes_2rank_len[] =
"nodes_2rank_len";
2697 static const char __pyx_k_pyx_PickleError[] =
"__pyx_PickleError";
2698 static const char __pyx_k_setstate_cython[] =
"__setstate_cython__";
2699 static const char __pyx_k_starting_coords[] =
"starting_coords";
2700 static const char __pyx_k_IMRElementsArray[] =
"IMRElementsArray_";
2701 static const char __pyx_k_arg_2rank_values[] =
"arg_2rank_values";
2702 static const char __pyx_k_displacements_in[] =
"displacements_in";
2703 static const char __pyx_k_nVariables_owned[] =
"nVariables_owned";
2704 static const char __pyx_k_referenceElement[] =
"referenceElement";
2705 static const char __pyx_k_smoothBoundaries[] =
"smoothBoundaries";
2706 static const char __pyx_k_Create_contiguous[] =
"Create_contiguous";
2707 static const char __pyx_k_displacements_out[] =
"displacements_out";
2708 static const char __pyx_k_elementNodesArray[] =
"elementNodesArray";
2709 static const char __pyx_k_nodeElementsArray[] =
"nodeElementsArray";
2710 static const char __pyx_k_nodeMaterialTypes[] =
"nodeMaterialTypes";
2711 static const char __pyx_k_proteus_Profiling[] =
"proteus.Profiling";
2712 static const char __pyx_k_pyx_unpickle_Enum[] =
"__pyx_unpickle_Enum";
2713 static const char __pyx_k_variable_nb_local[] =
"variable_nb_local";
2714 static const char __pyx_k_checkOwnedVariable[] =
"checkOwnedVariable";
2715 static const char __pyx_k_cline_in_traceback[] =
"cline_in_traceback";
2716 static const char __pyx_k_elementVolumeArray[] =
"elementVolumeArray";
2717 static const char __pyx_k_nodeElementOffsets[] =
"nodeElementOffsets";
2718 static const char __pyx_k_nodes_2rank_values[] =
"nodes_2rank_values";
2719 static const char __pyx_k_patchBoundaryNodes[] =
"patchBoundaryNodes";
2720 static const char __pyx_k_smoothNodesLaplace[] =
"smoothNodesLaplace";
2721 static const char __pyx_k_smoothNodesQuality[] =
"smoothNodesQuality";
2722 static const char __pyx_k_strided_and_direct[] =
"<strided and direct>";
2723 static const char __pyx_k_elementVolumesArray[] =
"elementVolumesArray";
2724 static const char __pyx_k_fixedNodesBoolArray[] =
"fixedNodesBoolArray";
2725 static const char __pyx_k_getDilationElements[] =
"getDilationElements";
2726 static const char __pyx_k_getLocalNearestNode[] =
"getLocalNearestNode";
2727 static const char __pyx_k_smoothNodesCentroid[] =
"smoothNodesCentroid";
2728 static const char __pyx_k_elementDilationArray[] =
"elementDilationArray_";
2729 static const char __pyx_k_mprans_MeshSmoothing[] =
"mprans.MeshSmoothing";
2730 static const char __pyx_k_strided_and_indirect[] =
"<strided and indirect>";
2731 static const char __pyx_k_contiguous_and_direct[] =
"<contiguous and direct>";
2732 static const char __pyx_k_elementNeighborsArray[] =
"elementNeighborsArray";
2733 static const char __pyx_k_elementVolumesArray_2[] =
"elementVolumesArray_";
2734 static const char __pyx_k_error_looking_for_dir[] =
"error looking for dir_";
2735 static const char __pyx_k_getDistortionElements[] =
"getDistortionElements";
2736 static const char __pyx_k_getNonOwnedNodeValues[] =
"getNonOwnedNodeValues";
2737 static const char __pyx_k_MemoryView_of_r_object[] =
"<MemoryView of %r object>";
2738 static const char __pyx_k_elementBoundariesArray[] =
"elementBoundariesArray";
2739 static const char __pyx_k_elementDistortionArray[] =
"elementDistortionArray_";
2740 static const char __pyx_k_getCornerNodesTriangle[] =
"getCornerNodesTriangle";
2741 static const char __pyx_k_getLocalNearestElement[] =
"getLocalNearestElement";
2742 static const char __pyx_k_updateDilationElements[] =
"updateDilationElements";
2743 static const char __pyx_k_MemoryView_of_r_at_0x_x[] =
"<MemoryView of %r at 0x%x>";
2744 static const char __pyx_k_contiguous_and_indirect[] =
"<contiguous and indirect>";
2745 static const char __pyx_k_elementBarycentersArray[] =
"elementBarycentersArray";
2746 static const char __pyx_k_pyScalarRecoveryAtNodes[] =
"pyScalarRecoveryAtNodes";
2747 static const char __pyx_k_pyVectorRecoveryAtNodes[] =
"pyVectorRecoveryAtNodes";
2748 static const char __pyx_k_Cannot_index_with_type_s[] =
"Cannot index with type '%s'";
2749 static const char __pyx_k_elementVolumeTargetArray[] =
"elementVolumeTargetArray";
2750 static const char __pyx_k_getElementVolumeTriangle[] =
"getElementVolumeTriangle";
2751 static const char __pyx_k_updateDistortionElements[] =
"updateDistortionElements";
2752 static const char __pyx_k_updateElementBarycenters[] =
"updateElementBarycenters";
2753 static const char __pyx_k_Invalid_shape_in_axis_d_d[] =
"Invalid shape in axis %d: %d.";
2754 static const char __pyx_k_elementBarycentersArray_2[] =
"elementBarycentersArray_";
2755 static const char __pyx_k_elementBoundaryNodesArray[] =
"elementBoundaryNodesArray";
2756 static const char __pyx_k_updateElementVolumesTetra[] =
"updateElementVolumesTetra";
2757 static const char __pyx_k_elementBoundaryNormalsArray[] =
"elementBoundaryNormalsArray";
2758 static const char __pyx_k_itemsize_0_for_cython_array[] =
"itemsize <= 0 for cython.array";
2759 static const char __pyx_k_ndarray_is_not_C_contiguous[] =
"ndarray is not C contiguous";
2760 static const char __pyx_k_nodeOffsets_subdomain_owned[] =
"nodeOffsets_subdomain_owned";
2761 static const char __pyx_k_elementBoundaryElementsArray[] =
"elementBoundaryElementsArray";
2762 static const char __pyx_k_updateElementVolumesTriangle[] =
"updateElementVolumesTriangle";
2763 static const char __pyx_k_elementBoundaryNormalsArray_2[] =
"elementBoundaryNormalsArray_";
2764 static const char __pyx_k_unable_to_allocate_array_data[] =
"unable to allocate array data.";
2765 static const char __pyx_k_getElementBoundaryNormalsTetra[] =
"getElementBoundaryNormalsTetra";
2766 static const char __pyx_k_nodeNumbering_subdomain2global[] =
"nodeNumbering_subdomain2global";
2767 static const char __pyx_k_strided_and_direct_or_indirect[] =
"<strided and direct or indirect>";
2768 static const char __pyx_k_elementBoundaryBarycentersArray[] =
"elementBoundaryBarycentersArray";
2769 static const char __pyx_k_numpy_core_multiarray_failed_to[] =
"numpy.core.multiarray failed to import";
2770 static const char __pyx_k_pyScalarRecoveryAtNodesWeighted[] =
"pyScalarRecoveryAtNodesWeighted";
2771 static const char __pyx_k_pyVectorRecoveryAtNodesWeighted[] =
"pyVectorRecoveryAtNodesWeighted";
2772 static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] =
"unknown dtype code in numpy.pxd (%d)";
2773 static const char __pyx_k_variableOffsets_subdomain_owned[] =
"variableOffsets_subdomain_owned";
2774 static const char __pyx_k_Buffer_view_does_not_expose_stri[] =
"Buffer view does not expose strides";
2775 static const char __pyx_k_Can_only_create_a_buffer_that_is[] =
"Can only create a buffer that is contiguous in memory.";
2776 static const char __pyx_k_Cannot_assign_to_read_only_memor[] =
"Cannot assign to read-only memoryview";
2777 static const char __pyx_k_Cannot_create_writable_memory_vi[] =
"Cannot create writable memory view from read-only memoryview";
2778 static const char __pyx_k_Empty_shape_tuple_for_cython_arr[] =
"Empty shape tuple for cython.array";
2779 static const char __pyx_k_Format_string_allocated_too_shor[] =
"Format string allocated too short, see comment in numpy.pxd";
2780 static const char __pyx_k_Incompatible_checksums_s_vs_0xb0[] =
"Incompatible checksums (%s vs 0xb068931 = (name))";
2781 static const char __pyx_k_Indirect_dimensions_not_supporte[] =
"Indirect dimensions not supported";
2782 static const char __pyx_k_Invalid_mode_expected_c_or_fortr[] =
"Invalid mode, expected 'c' or 'fortran', got %s";
2783 static const char __pyx_k_Non_native_byte_order_not_suppor[] =
"Non-native byte order not supported";
2784 static const char __pyx_k_Out_of_bounds_on_buffer_access_a[] =
"Out of bounds on buffer access (axis %d)";
2785 static const char __pyx_k_Unable_to_convert_item_to_object[] =
"Unable to convert item to object";
2786 static const char __pyx_k_could_not_find_element_element_e[] =
"could not find element! (element {eN}: {x}, {y}, {z}), nearest_eN {nearest_eN}: closest coords: {x2}, {y2}, {z2}, after {maxit} iterations";
2787 static const char __pyx_k_exteriorElementBoundariesBoolArr[] =
"exteriorElementBoundariesBoolArray";
2788 static const char __pyx_k_getElementBoundaryNormalsTriangl[] =
"getElementBoundaryNormalsTriangle";
2789 static const char __pyx_k_getInverseMeanRatioSingleTriangl[] =
"getInverseMeanRatioSingleTriangle";
2790 static const char __pyx_k_getInverseMeanRatioTriangleEleme[] =
"getInverseMeanRatioTriangleElements";
2791 static const char __pyx_k_getInverseMeanRatioTriangleNodes[] =
"getInverseMeanRatioTriangleNodes";
2792 static const char __pyx_k_getLocalNearestElementAroundNode[] =
"getLocalNearestElementAroundNode";
2793 static const char __pyx_k_getLocalNearestElementIntersecti[] =
"getLocalNearestElementIntersection";
2794 static const char __pyx_k_getNonOwnedNodeValues_locals_gen[] =
"getNonOwnedNodeValues.<locals>.genexpr";
2795 static const char __pyx_k_got_differing_extents_in_dimensi[] =
"got differing extents in dimension %d (got %d and %d)";
2796 static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] =
"ndarray is not Fortran contiguous";
2797 static const char __pyx_k_no_default___reduce___due_to_non[] =
"no default __reduce__ due to non-trivial __cinit__";
2798 static const char __pyx_k_numpy_core_umath_failed_to_impor[] =
"numpy.core.umath failed to import";
2799 static const char __pyx_k_proteus_mprans_MeshSmoothing_pyx[] =
"proteus/mprans/MeshSmoothing.pyx";
2800 static const char __pyx_k_smoothNodesQuality_is_work_in_pr[] =
"smoothNodesQuality is work in progress, do not use";
2801 static const char __pyx_k_unable_to_allocate_shape_and_str[] =
"unable to allocate shape and strides.";
2802 static const char __pyx_k_updateElementBoundaryNormalsTetr[] =
"updateElementBoundaryNormalsTetra";
2803 static const char __pyx_k_updateElementBoundaryNormalsTria[] =
"updateElementBoundaryNormalsTriangle";
2804 static const char __pyx_k_updateInverseMeanRatioTriangleEl[] =
"updateInverseMeanRatioTriangleElements";
2805 static const char __pyx_k_updateInverseMeanRatioTriangleNo[] =
"updateInverseMeanRatioTriangleNodes";
2806 static const char __pyx_k_variableNumbering_subdomain2glob[] =
"variableNumbering_subdomain2global";
2807 static const char __pyx_k_Format_string_allocated_too_shor_2[] =
"Format string allocated too short.";
2808 static PyObject *__pyx_n_s_ASCII;
2809 static PyObject *__pyx_kp_s_Buffer_view_does_not_expose_stri;
2810 static PyObject *__pyx_kp_s_Can_only_create_a_buffer_that_is;
2811 static PyObject *__pyx_kp_s_Cannot_assign_to_read_only_memor;
2812 static PyObject *__pyx_kp_s_Cannot_create_writable_memory_vi;
2813 static PyObject *__pyx_kp_s_Cannot_index_with_type_s;
2814 static PyObject *__pyx_n_s_Comm;
2815 static PyObject *__pyx_n_s_Commit;
2816 static PyObject *__pyx_n_s_Create_contiguous;
2817 static PyObject *__pyx_n_s_DOUBLE;
2818 static PyObject *__pyx_n_s_Ellipsis;
2819 static PyObject *__pyx_kp_s_Empty_shape_tuple_for_cython_arr;
2820 static PyObject *__pyx_kp_u_Format_string_allocated_too_shor;
2821 static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2;
2822 static PyObject *__pyx_n_s_Gatherv;
2823 static PyObject *__pyx_n_s_IMRElementsArray;
2824 static PyObject *__pyx_n_s_IMRNodesArray;
2825 static PyObject *__pyx_n_s_INT;
2826 static PyObject *__pyx_n_s_ImportError;
2827 static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xb0;
2828 static PyObject *__pyx_n_s_IndexError;
2829 static PyObject *__pyx_kp_s_Indirect_dimensions_not_supporte;
2830 static PyObject *__pyx_kp_s_Invalid_mode_expected_c_or_fortr;
2831 static PyObject *__pyx_kp_s_Invalid_shape_in_axis_d_d;
2832 static PyObject *__pyx_n_s_J_array;
2833 static PyObject *__pyx_n_s_MPI;
2834 static PyObject *__pyx_n_s_MemoryError;
2835 static PyObject *__pyx_kp_s_MemoryView_of_r_at_0x_x;
2836 static PyObject *__pyx_kp_s_MemoryView_of_r_object;
2837 static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor;
2838 static PyObject *__pyx_n_b_O;
2839 static PyObject *__pyx_kp_s_Out_of_bounds_on_buffer_access_a;
2840 static PyObject *__pyx_n_s_PickleError;
2841 static PyObject *__pyx_n_s_RuntimeError;
2842 static PyObject *__pyx_n_s_SUM;
2843 static PyObject *__pyx_kp_b_T;
2844 static PyObject *__pyx_n_s_TypeError;
2845 static PyObject *__pyx_kp_s_Unable_to_convert_item_to_object;
2846 static PyObject *__pyx_n_s_ValueError;
2847 static PyObject *__pyx_n_s_View_MemoryView;
2848 static PyObject *__pyx_kp_b__31;
2849 static PyObject *__pyx_kp_b__32;
2850 static PyObject *__pyx_kp_b__33;
2851 static PyObject *__pyx_kp_b__34;
2852 static PyObject *__pyx_kp_u__35;
2853 static PyObject *__pyx_n_s_allocate_buffer;
2854 static PyObject *__pyx_n_s_allreduce;
2855 static PyObject *__pyx_n_s_alpha;
2856 static PyObject *__pyx_n_s_append;
2857 static PyObject *__pyx_n_s_apply_directly;
2858 static PyObject *__pyx_n_s_arg_2doArray;
2859 static PyObject *__pyx_n_s_arg_2rank;
2860 static PyObject *__pyx_n_s_arg_2rank_values;
2861 static PyObject *__pyx_n_s_arg_shape;
2862 static PyObject *__pyx_n_s_arg_shape_copy;
2863 static PyObject *__pyx_n_s_arg_shape_len;
2864 static PyObject *__pyx_n_s_args;
2865 static PyObject *__pyx_n_s_args_2;
2866 static PyObject *__pyx_n_s_array;
2867 static PyObject *__pyx_n_s_array_size;
2868 static PyObject *__pyx_n_s_astype;
2869 static PyObject *__pyx_n_s_base;
2870 static PyObject *__pyx_n_s_c;
2871 static PyObject *__pyx_n_u_c;
2872 static PyObject *__pyx_n_s_checkOwnedVariable;
2873 static PyObject *__pyx_n_s_checkedElements;
2874 static PyObject *__pyx_n_s_class;
2875 static PyObject *__pyx_n_s_cline_in_traceback;
2876 static PyObject *__pyx_n_s_close;
2877 static PyObject *__pyx_n_s_comm;
2878 static PyObject *__pyx_n_s_comm_size;
2879 static PyObject *__pyx_kp_s_contiguous_and_direct;
2880 static PyObject *__pyx_kp_s_contiguous_and_indirect;
2881 static PyObject *__pyx_n_s_coords;
2882 static PyObject *__pyx_kp_s_could_not_find_element_element_e;
2883 static PyObject *__pyx_n_s_counts_in;
2884 static PyObject *__pyx_n_s_counts_out;
2885 static PyObject *__pyx_n_s_datatype;
2886 static PyObject *__pyx_n_s_detJ_array;
2887 static PyObject *__pyx_n_s_dict;
2888 static PyObject *__pyx_n_s_dilation;
2889 static PyObject *__pyx_n_s_disp;
2890 static PyObject *__pyx_n_s_displacements_in;
2891 static PyObject *__pyx_n_s_displacements_out;
2892 static PyObject *__pyx_n_s_distortion;
2893 static PyObject *__pyx_n_s_dot;
2894 static PyObject *__pyx_n_s_double;
2895 static PyObject *__pyx_n_s_dtype;
2896 static PyObject *__pyx_n_s_dtype_is_object;
2897 static PyObject *__pyx_n_s_eN;
2898 static PyObject *__pyx_n_s_eOffset;
2899 static PyObject *__pyx_n_s_el_average;
2900 static PyObject *__pyx_n_s_elementBarycentersArray;
2901 static PyObject *__pyx_n_s_elementBarycentersArray_2;
2902 static PyObject *__pyx_n_s_elementBoundariesArray;
2903 static PyObject *__pyx_n_s_elementBoundaryBarycentersArray;
2904 static PyObject *__pyx_n_s_elementBoundaryElementsArray;
2905 static PyObject *__pyx_n_s_elementBoundaryNodesArray;
2906 static PyObject *__pyx_n_s_elementBoundaryNormalsArray;
2907 static PyObject *__pyx_n_s_elementBoundaryNormalsArray_2;
2908 static PyObject *__pyx_n_s_elementDilationArray;
2909 static PyObject *__pyx_n_s_elementDistortionArray;
2910 static PyObject *__pyx_n_s_elementMaps;
2911 static PyObject *__pyx_n_s_elementNeighborsArray;
2912 static PyObject *__pyx_n_s_elementNodesArray;
2913 static PyObject *__pyx_n_s_elementVolumeArray;
2914 static PyObject *__pyx_n_s_elementVolumeTargetArray;
2915 static PyObject *__pyx_n_s_elementVolumesArray;
2916 static PyObject *__pyx_n_s_elementVolumesArray_2;
2917 static PyObject *__pyx_n_s_encode;
2918 static PyObject *__pyx_n_s_enumerate;
2919 static PyObject *__pyx_n_s_error;
2920 static PyObject *__pyx_kp_s_error_looking_for_dir;
2921 static PyObject *__pyx_n_s_exteriorElementBoundariesBoolArr;
2922 static PyObject *__pyx_n_s_femSpace;
2923 static PyObject *__pyx_n_s_fixedNodesBoolArray;
2924 static PyObject *__pyx_n_s_flags;
2925 static PyObject *__pyx_n_s_format;
2926 static PyObject *__pyx_n_s_fortran;
2927 static PyObject *__pyx_n_u_fortran;
2928 static PyObject *__pyx_n_s_genexpr;
2929 static PyObject *__pyx_n_s_get;
2930 static PyObject *__pyx_n_s_getCornerNodesTriangle;
2931 static PyObject *__pyx_n_s_getDilationElements;
2932 static PyObject *__pyx_n_s_getDistortionElements;
2933 static PyObject *__pyx_n_s_getElementBoundaryNormalsTetra;
2934 static PyObject *__pyx_n_s_getElementBoundaryNormalsTriangl;
2935 static PyObject *__pyx_n_s_getElementVolumeTriangle;
2936 static PyObject *__pyx_n_s_getInverseMeanRatioSingleTriangl;
2937 static PyObject *__pyx_n_s_getInverseMeanRatioTriangleEleme;
2938 static PyObject *__pyx_n_s_getInverseMeanRatioTriangleNodes;
2939 static PyObject *__pyx_n_s_getInverseValue;
2940 static PyObject *__pyx_n_s_getLocalElement;
2941 static PyObject *__pyx_n_s_getLocalNearestElement;
2942 static PyObject *__pyx_n_s_getLocalNearestElementAroundNode;
2943 static PyObject *__pyx_n_s_getLocalNearestElementIntersecti;
2944 static PyObject *__pyx_n_s_getLocalNearestNode;
2945 static PyObject *__pyx_n_s_getNonOwnedNodeValues;
2946 static PyObject *__pyx_n_s_getNonOwnedNodeValues_locals_gen;
2947 static PyObject *__pyx_n_s_getstate;
2948 static PyObject *__pyx_kp_s_got_differing_extents_in_dimensi;
2949 static PyObject *__pyx_n_s_i;
2950 static PyObject *__pyx_n_s_iN;
2951 static PyObject *__pyx_n_s_id;
2952 static PyObject *__pyx_n_s_ii;
2953 static PyObject *__pyx_n_s_import;
2954 static PyObject *__pyx_n_s_int32;
2955 static PyObject *__pyx_n_s_inv;
2956 static PyObject *__pyx_n_s_ir;
2957 static PyObject *__pyx_n_s_itemsize;
2958 static PyObject *__pyx_kp_s_itemsize_0_for_cython_array;
2959 static PyObject *__pyx_n_s_join;
2960 static PyObject *__pyx_n_s_linalg;
2961 static PyObject *__pyx_n_s_logEvent;
2962 static PyObject *__pyx_n_s_main;
2963 static PyObject *__pyx_n_s_maxit;
2964 static PyObject *__pyx_n_s_memview;
2965 static PyObject *__pyx_n_s_mesh;
2966 static PyObject *__pyx_n_s_mode;
2967 static PyObject *__pyx_n_s_mpi4py;
2968 static PyObject *__pyx_n_s_mprans_MeshSmoothing;
2969 static PyObject *__pyx_n_s_my_rank;
2970 static PyObject *__pyx_n_s_my_size;
2971 static PyObject *__pyx_n_s_nA;
2972 static PyObject *__pyx_n_s_nB;
2973 static PyObject *__pyx_n_s_nC;
2974 static PyObject *__pyx_n_s_nElements;
2975 static PyObject *__pyx_n_s_nNodes;
2976 static PyObject *__pyx_n_s_nNodes_global;
2977 static PyObject *__pyx_n_s_nNodes_owned;
2978 static PyObject *__pyx_n_s_nVariables_owned;
2979 static PyObject *__pyx_n_s_name;
2980 static PyObject *__pyx_n_s_name_2;
2981 static PyObject *__pyx_n_s_nd;
2982 static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous;
2983 static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou;
2984 static PyObject *__pyx_n_s_ndim;
2985 static PyObject *__pyx_n_s_nearest_eN;
2986 static PyObject *__pyx_n_s_new;
2987 static PyObject *__pyx_n_s_new_rank;
2988 static PyObject *__pyx_kp_s_no_default___reduce___due_to_non;
2989 static PyObject *__pyx_n_s_node;
2990 static PyObject *__pyx_n_s_node0;
2991 static PyObject *__pyx_n_s_nodeArray;
2992 static PyObject *__pyx_n_s_nodeArray_2;
2993 static PyObject *__pyx_n_s_nodeElementOffsets;
2994 static PyObject *__pyx_n_s_nodeElementsArray;
2995 static PyObject *__pyx_n_s_nodeMaterialTypes;
2996 static PyObject *__pyx_n_s_nodeNumbering_subdomain2global;
2997 static PyObject *__pyx_n_s_nodeOffsets_subdomain_owned;
2998 static PyObject *__pyx_n_s_nodeStarArray;
2999 static PyObject *__pyx_n_s_nodeStarOffsets;
3000 static PyObject *__pyx_n_s_node_new_rank;
3001 static PyObject *__pyx_n_s_nodes_2doArray;
3002 static PyObject *__pyx_n_s_nodes_2rank;
3003 static PyObject *__pyx_n_s_nodes_2rank_len;
3004 static PyObject *__pyx_n_s_nodes_2rank_values;
3005 static PyObject *__pyx_n_s_np;
3006 static PyObject *__pyx_n_s_numpy;
3007 static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to;
3008 static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor;
3009 static PyObject *__pyx_n_s_obj;
3010 static PyObject *__pyx_n_s_onElement;
3011 static PyObject *__pyx_n_s_op;
3012 static PyObject *__pyx_n_s_pack;
3013 static PyObject *__pyx_n_s_patchBoundaryNodes;
3014 static PyObject *__pyx_n_s_pickle;
3015 static PyObject *__pyx_n_s_proteus;
3016 static PyObject *__pyx_n_s_proteus_Profiling;
3017 static PyObject *__pyx_kp_s_proteus_mprans_MeshSmoothing_pyx;
3018 static PyObject *__pyx_n_s_pyScalarRecoveryAtNodes;
3019 static PyObject *__pyx_n_s_pyScalarRecoveryAtNodesWeighted;
3020 static PyObject *__pyx_n_s_pyVectorRecoveryAtNodes;
3021 static PyObject *__pyx_n_s_pyVectorRecoveryAtNodesWeighted;
3022 static PyObject *__pyx_n_s_pyx_PickleError;
3023 static PyObject *__pyx_n_s_pyx_checksum;
3024 static PyObject *__pyx_n_s_pyx_getbuffer;
3025 static PyObject *__pyx_n_s_pyx_result;
3026 static PyObject *__pyx_n_s_pyx_state;
3027 static PyObject *__pyx_n_s_pyx_type;
3028 static PyObject *__pyx_n_s_pyx_unpickle_Enum;
3029 static PyObject *__pyx_n_s_pyx_vtable;
3030 static PyObject *__pyx_n_s_range;
3031 static PyObject *__pyx_n_s_rank;
3032 static PyObject *__pyx_n_s_rank_recv;
3033 static PyObject *__pyx_n_s_reduce;
3034 static PyObject *__pyx_n_s_reduce_cython;
3035 static PyObject *__pyx_n_s_reduce_ex;
3036 static PyObject *__pyx_n_s_referenceElement;
3037 static PyObject *__pyx_n_s_result;
3038 static PyObject *__pyx_n_s_root;
3039 static PyObject *__pyx_kp_u_s;
3040 static PyObject *__pyx_n_s_scalars;
3041 static PyObject *__pyx_n_s_send;
3042 static PyObject *__pyx_n_s_setstate;
3043 static PyObject *__pyx_n_s_setstate_cython;
3044 static PyObject *__pyx_n_s_shape;
3045 static PyObject *__pyx_n_s_shape_factor;
3046 static PyObject *__pyx_n_s_simultaneous;
3047 static PyObject *__pyx_n_s_size;
3048 static PyObject *__pyx_n_s_smoothBoundaries;
3049 static PyObject *__pyx_n_s_smoothNodesCentroid;
3050 static PyObject *__pyx_n_s_smoothNodesLaplace;
3051 static PyObject *__pyx_n_s_smoothNodesQuality;
3052 static PyObject *__pyx_kp_s_smoothNodesQuality_is_work_in_pr;
3053 static PyObject *__pyx_n_s_start;
3054 static PyObject *__pyx_n_s_starting_coords;
3055 static PyObject *__pyx_n_s_step;
3056 static PyObject *__pyx_n_s_stop;
3057 static PyObject *__pyx_kp_s_strided_and_direct;
3058 static PyObject *__pyx_kp_s_strided_and_direct_or_indirect;
3059 static PyObject *__pyx_kp_s_strided_and_indirect;
3060 static PyObject *__pyx_kp_s_stringsource;
3061 static PyObject *__pyx_n_s_struct;
3062 static PyObject *__pyx_n_s_sumtot;
3063 static PyObject *__pyx_n_s_test;
3064 static PyObject *__pyx_n_s_throw;
3065 static PyObject *__pyx_n_s_tompi4py;
3066 static PyObject *__pyx_n_s_transpose;
3067 static PyObject *__pyx_kp_s_unable_to_allocate_array_data;
3068 static PyObject *__pyx_kp_s_unable_to_allocate_shape_and_str;
3069 static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd;
3070 static PyObject *__pyx_n_s_unpack;
3071 static PyObject *__pyx_n_s_update;
3072 static PyObject *__pyx_n_s_updateDilationElements;
3073 static PyObject *__pyx_n_s_updateDistortionElements;
3074 static PyObject *__pyx_n_s_updateElementBarycenters;
3075 static PyObject *__pyx_n_s_updateElementBoundaryNormalsTetr;
3076 static PyObject *__pyx_n_s_updateElementBoundaryNormalsTria;
3077 static PyObject *__pyx_n_s_updateElementVolumesTetra;
3078 static PyObject *__pyx_n_s_updateElementVolumesTriangle;
3079 static PyObject *__pyx_n_s_updateInverseMeanRatioTriangleEl;
3080 static PyObject *__pyx_n_s_updateInverseMeanRatioTriangleNo;
3081 static PyObject *__pyx_n_s_variableNumbering_subdomain2glob;
3082 static PyObject *__pyx_n_s_variableOffsets_subdomain_owned;
3083 static PyObject *__pyx_n_s_variable_nb_local;
3084 static PyObject *__pyx_n_s_vectors;
3085 static PyObject *__pyx_n_s_x;
3086 static PyObject *__pyx_n_s_x2;
3087 static PyObject *__pyx_n_s_xi;
3088 static PyObject *__pyx_n_s_y;
3089 static PyObject *__pyx_n_s_y2;
3090 static PyObject *__pyx_n_s_z;
3091 static PyObject *__pyx_n_s_z2;
3092 static PyObject *__pyx_n_s_zeros;
3093 static PyObject *__pyx_n_s_zeros_like;
3094 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_smoothNodesLaplace(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_nodeArray_, __Pyx_memviewslice __pyx_v_nodeStarOffsets, __Pyx_memviewslice __pyx_v_nodeStarArray, __Pyx_memviewslice __pyx_v_nodeMaterialTypes,
int __pyx_v_nNodes_owned,
int __pyx_v_nd,
bool __pyx_v_simultaneous,
bool __pyx_v_smoothBoundaries, __Pyx_memviewslice __pyx_v_fixedNodesBoolArray,
double __pyx_v_alpha);
3095 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_2smoothNodesCentroid(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_nodeArray_, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_nodeMaterialTypes, __Pyx_memviewslice __pyx_v_elementBarycentersArray, __Pyx_memviewslice __pyx_v_elementVolumesArray, __Pyx_memviewslice __pyx_v_elementNodesArray,
int __pyx_v_nNodes_owned,
bool __pyx_v_simultaneous,
bool __pyx_v_smoothBoundaries, __Pyx_memviewslice __pyx_v_fixedNodesBoolArray,
double __pyx_v_alpha);
3096 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_4updateDilationElements(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_elementDilationArray_, __Pyx_memviewslice __pyx_v_elementVolumeArray, __Pyx_memviewslice __pyx_v_elementVolumeTargetArray,
int __pyx_v_nElements);
3097 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_6getDilationElements(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_elementVolumeArray, __Pyx_memviewslice __pyx_v_elementVolumeTargetArray);
3098 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_8updateDistortionElements(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_elementDistortionArray_, __Pyx_memviewslice __pyx_v_J_array, __Pyx_memviewslice __pyx_v_detJ_array,
int __pyx_v_nd,
int __pyx_v_nElements);
3099 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_10getDistortionElements(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_J_array, __Pyx_memviewslice __pyx_v_detJ_array,
int __pyx_v_nd);
3100 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_12updateInverseMeanRatioTriangleElements(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_IMRElementsArray_, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementNodesArray,
int __pyx_v_nElements);
3101 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_14getInverseMeanRatioTriangleElements(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementNodesArray);
3102 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_16updateInverseMeanRatioTriangleNodes(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_IMRNodesArray_, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementNodesArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_nodeElementsArray,
int __pyx_v_nNodes,
int __pyx_v_nElements,
bool __pyx_v_el_average);
3103 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_18getInverseMeanRatioTriangleNodes(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementNodesArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_nodeElementsArray,
bool __pyx_v_el_average);
3104 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_20getInverseMeanRatioSingleTriangle(CYTHON_UNUSED PyObject *__pyx_self,
int __pyx_v_node0, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementNodesArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_nodeElementsArray);
3105 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_22smoothNodesQuality(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_distortion, __Pyx_memviewslice __pyx_v_dilation, __Pyx_memviewslice __pyx_v_nodeArray,
int __pyx_v_nNodes_owned, __Pyx_memviewslice __pyx_v_nodeMaterialTypes, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_elementNodesArray, CYTHON_UNUSED
bool __pyx_v_apply_directly);
3106 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_24getLocalNearestNode(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_coords, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_nodeStarOffsets, __Pyx_memviewslice __pyx_v_nodeStarArray,
int __pyx_v_node);
3107 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_26getLocalNearestElement(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_coords, __Pyx_memviewslice __pyx_v_elementBarycentersArray, __Pyx_memviewslice __pyx_v_elementNeighborsArray,
int __pyx_v_eN);
3108 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_28getLocalNearestElementAroundNode(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_coords, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_elementBarycentersArray,
int __pyx_v_node);
3109 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_30getLocalNearestElementIntersection(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_coords, __Pyx_memviewslice __pyx_v_starting_coords, __Pyx_memviewslice __pyx_v_elementBoundaryNormalsArray, __Pyx_memviewslice __pyx_v_elementBoundariesArray, __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray, __Pyx_memviewslice __pyx_v_elementBoundaryElementsArray, __Pyx_memviewslice __pyx_v_exteriorElementBoundariesBoolArray,
int __pyx_v_eN);
3110 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_32getLocalElement(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_femSpace, PyObject *__pyx_v_coords, PyObject *__pyx_v_node);
3111 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_34updateElementBoundaryNormalsTriangle(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_elementBoundaryNormalsArray_, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementBoundariesArray, __Pyx_memviewslice __pyx_v_elementBoundaryNodesArray, __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray, __Pyx_memviewslice __pyx_v_elementBarycentersArray,
int __pyx_v_nElements);
3112 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_36getElementBoundaryNormalsTriangle(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementBoundariesArray, __Pyx_memviewslice __pyx_v_elementBoundaryNodesArray, __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray, __Pyx_memviewslice __pyx_v_elementBarycentersArray);
3113 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_38updateElementBoundaryNormalsTetra(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_elementBoundaryNormalsArray_, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementBoundariesArray, __Pyx_memviewslice __pyx_v_elementBoundaryNodesArray, __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray, __Pyx_memviewslice __pyx_v_elementBarycentersArray,
int __pyx_v_nElements);
3114 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_40getElementBoundaryNormalsTetra(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementBoundariesArray, __Pyx_memviewslice __pyx_v_elementBoundaryNodesArray, __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray, __Pyx_memviewslice __pyx_v_elementBarycentersArray);
3115 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_42updateElementVolumesTriangle(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_elementVolumesArray_, __Pyx_memviewslice __pyx_v_elementNodesArray, __Pyx_memviewslice __pyx_v_nodeArray,
int __pyx_v_nElements);
3116 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_44getElementVolumeTriangle(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_nA, __Pyx_memviewslice __pyx_v_nB, __Pyx_memviewslice __pyx_v_nC);
3117 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_46updateElementVolumesTetra(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_elementVolumesArray_, __Pyx_memviewslice __pyx_v_elementNodesArray, __Pyx_memviewslice __pyx_v_nodeArray,
int __pyx_v_nElements);
3118 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_48updateElementBarycenters(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_elementBarycentersArray_, __Pyx_memviewslice __pyx_v_elementNodesArray, __Pyx_memviewslice __pyx_v_nodeArray,
int __pyx_v_nElements);
3119 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_50getCornerNodesTriangle(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_nodeStarArray, __Pyx_memviewslice __pyx_v_nodeStarOffsets, __Pyx_memviewslice __pyx_v_nodeMaterialTypes,
int __pyx_v_nNodes);
3120 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_21getNonOwnedNodeValues_genexpr(PyObject *__pyx_self);
3121 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_21getNonOwnedNodeValues_3genexpr(PyObject *__pyx_self);
3122 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_52getNonOwnedNodeValues(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_args_,
int __pyx_v_nNodes_owned,
int __pyx_v_nNodes_global, __Pyx_memviewslice __pyx_v_nodeNumbering_subdomain2global, __Pyx_memviewslice __pyx_v_nodeOffsets_subdomain_owned);
3123 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_54checkOwnedVariable(CYTHON_UNUSED PyObject *__pyx_self,
int __pyx_v_variable_nb_local,
int __pyx_v_rank,
int __pyx_v_nVariables_owned, __Pyx_memviewslice __pyx_v_variableNumbering_subdomain2global, __Pyx_memviewslice __pyx_v_variableOffsets_subdomain_owned);
3124 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_56pyScalarRecoveryAtNodes(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_scalars, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets);
3125 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_58pyScalarRecoveryAtNodesWeighted(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_scalars, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_detJ_array,
int __pyx_v_nNodes);
3126 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_60pyVectorRecoveryAtNodes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_vectors, PyObject *__pyx_v_nodeElementsArray, PyObject *__pyx_v_nodeElementOffsets, PyObject *__pyx_v_nd);
3127 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_62pyVectorRecoveryAtNodesWeighted(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_vectors, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_detJ_array,
int __pyx_v_nd);
3128 static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info,
int __pyx_v_flags);
3129 static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info);
3130 static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(
struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode,
int __pyx_v_allocate_buffer);
3131 static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(
struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info,
int __pyx_v_flags);
3132 static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(
struct __pyx_array_obj *__pyx_v_self);
3133 static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(
struct __pyx_array_obj *__pyx_v_self);
3134 static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(
struct __pyx_array_obj *__pyx_v_self);
3135 static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(
struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr);
3136 static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(
struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item);
3137 static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(
struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value);
3138 static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED
struct __pyx_array_obj *__pyx_v_self);
3139 static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED
struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state);
3140 static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(
struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name);
3141 static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(
struct __pyx_MemviewEnum_obj *__pyx_v_self);
3142 static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(
struct __pyx_MemviewEnum_obj *__pyx_v_self);
3143 static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(
struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state);
3144 static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(
struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj,
int __pyx_v_flags,
int __pyx_v_dtype_is_object);
3145 static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(
struct __pyx_memoryview_obj *__pyx_v_self);
3146 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(
struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index);
3147 static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(
struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value);
3148 static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(
struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info,
int __pyx_v_flags);
3149 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(
struct __pyx_memoryview_obj *__pyx_v_self);
3150 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(
struct __pyx_memoryview_obj *__pyx_v_self);
3151 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(
struct __pyx_memoryview_obj *__pyx_v_self);
3152 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(
struct __pyx_memoryview_obj *__pyx_v_self);
3153 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(
struct __pyx_memoryview_obj *__pyx_v_self);
3154 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(
struct __pyx_memoryview_obj *__pyx_v_self);
3155 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(
struct __pyx_memoryview_obj *__pyx_v_self);
3156 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(
struct __pyx_memoryview_obj *__pyx_v_self);
3157 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(
struct __pyx_memoryview_obj *__pyx_v_self);
3158 static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(
struct __pyx_memoryview_obj *__pyx_v_self);
3159 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(
struct __pyx_memoryview_obj *__pyx_v_self);
3160 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(
struct __pyx_memoryview_obj *__pyx_v_self);
3161 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(
struct __pyx_memoryview_obj *__pyx_v_self);
3162 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(
struct __pyx_memoryview_obj *__pyx_v_self);
3163 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(
struct __pyx_memoryview_obj *__pyx_v_self);
3164 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(
struct __pyx_memoryview_obj *__pyx_v_self);
3165 static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED
struct __pyx_memoryview_obj *__pyx_v_self);
3166 static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED
struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state);
3167 static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(
struct __pyx_memoryviewslice_obj *__pyx_v_self);
3168 static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(
struct __pyx_memoryviewslice_obj *__pyx_v_self);
3169 static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED
struct __pyx_memoryviewslice_obj *__pyx_v_self);
3170 static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED
struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state);
3171 static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type,
long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state);
3172 static PyObject *__pyx_tp_new_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues(PyTypeObject *t, PyObject *a, PyObject *k);
3173 static PyObject *__pyx_tp_new_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr(PyTypeObject *t, PyObject *a, PyObject *k);
3174 static PyObject *__pyx_tp_new_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr(PyTypeObject *t, PyObject *a, PyObject *k);
3175 static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k);
3176 static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, PyObject *a, PyObject *k);
3177 static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k);
3178 static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k);
3179 static PyObject *__pyx_float_0_;
3180 static PyObject *__pyx_float_1_;
3181 static PyObject *__pyx_float_0_5;
3182 static PyObject *__pyx_int_0;
3183 static PyObject *__pyx_int_1;
3184 static PyObject *__pyx_int_2;
3185 static PyObject *__pyx_int_3;
3186 static PyObject *__pyx_int_4;
3187 static PyObject *__pyx_int_184977713;
3188 static PyObject *__pyx_int_neg_1;
3189 static __Pyx_memviewslice __pyx_k_;
3190 static __Pyx_memviewslice __pyx_k__2;
3191 static __Pyx_memviewslice __pyx_k__5;
3192 static PyObject *__pyx_slice__4;
3193 static PyObject *__pyx_tuple__3;
3194 static PyObject *__pyx_tuple__6;
3195 static PyObject *__pyx_tuple__7;
3196 static PyObject *__pyx_tuple__8;
3197 static PyObject *__pyx_tuple__9;
3198 static PyObject *__pyx_tuple__10;
3199 static PyObject *__pyx_tuple__11;
3200 static PyObject *__pyx_tuple__12;
3201 static PyObject *__pyx_tuple__13;
3202 static PyObject *__pyx_tuple__14;
3203 static PyObject *__pyx_tuple__15;
3204 static PyObject *__pyx_tuple__16;
3205 static PyObject *__pyx_tuple__17;
3206 static PyObject *__pyx_tuple__18;
3207 static PyObject *__pyx_tuple__19;
3208 static PyObject *__pyx_tuple__20;
3209 static PyObject *__pyx_tuple__21;
3210 static PyObject *__pyx_tuple__22;
3211 static PyObject *__pyx_tuple__23;
3212 static PyObject *__pyx_tuple__24;
3213 static PyObject *__pyx_tuple__25;
3214 static PyObject *__pyx_tuple__26;
3215 static PyObject *__pyx_tuple__27;
3216 static PyObject *__pyx_tuple__28;
3217 static PyObject *__pyx_tuple__29;
3218 static PyObject *__pyx_tuple__30;
3219 static PyObject *__pyx_tuple__36;
3220 static PyObject *__pyx_tuple__38;
3221 static PyObject *__pyx_tuple__40;
3222 static PyObject *__pyx_tuple__42;
3223 static PyObject *__pyx_tuple__44;
3224 static PyObject *__pyx_tuple__46;
3225 static PyObject *__pyx_tuple__48;
3226 static PyObject *__pyx_tuple__50;
3227 static PyObject *__pyx_tuple__52;
3228 static PyObject *__pyx_tuple__54;
3229 static PyObject *__pyx_tuple__56;
3230 static PyObject *__pyx_tuple__58;
3231 static PyObject *__pyx_tuple__60;
3232 static PyObject *__pyx_tuple__62;
3233 static PyObject *__pyx_tuple__64;
3234 static PyObject *__pyx_tuple__66;
3235 static PyObject *__pyx_tuple__68;
3236 static PyObject *__pyx_tuple__70;
3237 static PyObject *__pyx_tuple__72;
3238 static PyObject *__pyx_tuple__74;
3239 static PyObject *__pyx_tuple__76;
3240 static PyObject *__pyx_tuple__78;
3241 static PyObject *__pyx_tuple__80;
3242 static PyObject *__pyx_tuple__82;
3243 static PyObject *__pyx_tuple__84;
3244 static PyObject *__pyx_tuple__86;
3245 static PyObject *__pyx_tuple__88;
3246 static PyObject *__pyx_tuple__90;
3247 static PyObject *__pyx_tuple__92;
3248 static PyObject *__pyx_tuple__94;
3249 static PyObject *__pyx_tuple__96;
3250 static PyObject *__pyx_tuple__98;
3251 static PyObject *__pyx_tuple__100;
3252 static PyObject *__pyx_tuple__101;
3253 static PyObject *__pyx_tuple__102;
3254 static PyObject *__pyx_tuple__103;
3255 static PyObject *__pyx_tuple__104;
3256 static PyObject *__pyx_tuple__105;
3257 static PyObject *__pyx_codeobj__37;
3258 static PyObject *__pyx_codeobj__39;
3259 static PyObject *__pyx_codeobj__41;
3260 static PyObject *__pyx_codeobj__43;
3261 static PyObject *__pyx_codeobj__45;
3262 static PyObject *__pyx_codeobj__47;
3263 static PyObject *__pyx_codeobj__49;
3264 static PyObject *__pyx_codeobj__51;
3265 static PyObject *__pyx_codeobj__53;
3266 static PyObject *__pyx_codeobj__55;
3267 static PyObject *__pyx_codeobj__57;
3268 static PyObject *__pyx_codeobj__59;
3269 static PyObject *__pyx_codeobj__61;
3270 static PyObject *__pyx_codeobj__63;
3271 static PyObject *__pyx_codeobj__65;
3272 static PyObject *__pyx_codeobj__67;
3273 static PyObject *__pyx_codeobj__69;
3274 static PyObject *__pyx_codeobj__71;
3275 static PyObject *__pyx_codeobj__73;
3276 static PyObject *__pyx_codeobj__75;
3277 static PyObject *__pyx_codeobj__77;
3278 static PyObject *__pyx_codeobj__79;
3279 static PyObject *__pyx_codeobj__81;
3280 static PyObject *__pyx_codeobj__83;
3281 static PyObject *__pyx_codeobj__85;
3282 static PyObject *__pyx_codeobj__87;
3283 static PyObject *__pyx_codeobj__89;
3284 static PyObject *__pyx_codeobj__91;
3285 static PyObject *__pyx_codeobj__93;
3286 static PyObject *__pyx_codeobj__95;
3287 static PyObject *__pyx_codeobj__97;
3288 static PyObject *__pyx_codeobj__99;
3289 static PyObject *__pyx_codeobj__106;
3301 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_1smoothNodesLaplace(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
3302 static char __pyx_doc_6mprans_13MeshSmoothing_smoothNodesLaplace[] =
"\n Laplace Smoothing:\n Mesh nodes are displaced to the centroid of neighbouring nodes\n\n Parameters\n ----------\n nodeArray_: double[:,:]\n array of mesh nodes\n (!) will be modified with smoothing\n nodeStarOffsets: int[:]\n array to get offsets for neighbouring node numbers\n nodeStarArray: int[:]\n array of neighbouring nodes\n nodeMaterialTypes: int[:]\n array to know which node is interior node (materialType=0)\n nNodes_owned: int\n number of nodes owned\n nd: int\n number of dimensions (needed to find direction to smooth boundaries)\n simultaneous: bool\n if True: simultaneous smoothing\n if False: sequential smoothing\n smoothBoundaries: bool\n if True: boundaries are smoothed (only with surrounding boundary nodes)\n if False: boudnary nodes are fixed\n fixedNodesBoolArray: int[:]\n array of same length as nodeArray with:\n fixedNodesBoolArray[node] = 1 -> node is fixed\n fixedNodesBoolArray[node] = 0 -> node is not fixed\n alpha: double\n penalty term related to original position of nodes (0 <= alpha <= 1)\n ";
3303 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_1smoothNodesLaplace = {
"smoothNodesLaplace", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_1smoothNodesLaplace, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_13MeshSmoothing_smoothNodesLaplace};
3304 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_1smoothNodesLaplace(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3305 __Pyx_memviewslice __pyx_v_nodeArray_ = { 0, 0, { 0 }, { 0 }, { 0 } };
3306 __Pyx_memviewslice __pyx_v_nodeStarOffsets = { 0, 0, { 0 }, { 0 }, { 0 } };
3307 __Pyx_memviewslice __pyx_v_nodeStarArray = { 0, 0, { 0 }, { 0 }, { 0 } };
3308 __Pyx_memviewslice __pyx_v_nodeMaterialTypes = { 0, 0, { 0 }, { 0 }, { 0 } };
3309 int __pyx_v_nNodes_owned;
3311 bool __pyx_v_simultaneous;
3312 bool __pyx_v_smoothBoundaries;
3313 __Pyx_memviewslice __pyx_v_fixedNodesBoolArray = { 0, 0, { 0 }, { 0 }, { 0 } };
3314 double __pyx_v_alpha;
3315 PyObject *__pyx_r = 0;
3316 __Pyx_RefNannyDeclarations
3317 __Pyx_RefNannySetupContext(
"smoothNodesLaplace (wrapper)", 0);
3319 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nodeArray,&__pyx_n_s_nodeStarOffsets,&__pyx_n_s_nodeStarArray,&__pyx_n_s_nodeMaterialTypes,&__pyx_n_s_nNodes_owned,&__pyx_n_s_nd,&__pyx_n_s_simultaneous,&__pyx_n_s_smoothBoundaries,&__pyx_n_s_fixedNodesBoolArray,&__pyx_n_s_alpha,0};
3320 PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
3321 if (unlikely(__pyx_kwds)) {
3323 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3325 case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
3327 case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
3329 case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3331 case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3333 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3335 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3337 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3339 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3341 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3343 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3346 default:
goto __pyx_L5_argtuple_error;
3348 kw_args = PyDict_Size(__pyx_kwds);
3351 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeArray)) != 0)) kw_args--;
3352 else goto __pyx_L5_argtuple_error;
3355 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeStarOffsets)) != 0)) kw_args--;
3357 __Pyx_RaiseArgtupleInvalid(
"smoothNodesLaplace", 0, 6, 10, 1); __PYX_ERR(0, 11, __pyx_L3_error)
3361 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeStarArray)) != 0)) kw_args--;
3363 __Pyx_RaiseArgtupleInvalid(
"smoothNodesLaplace", 0, 6, 10, 2); __PYX_ERR(0, 11, __pyx_L3_error)
3367 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeMaterialTypes)) != 0)) kw_args--;
3369 __Pyx_RaiseArgtupleInvalid(
"smoothNodesLaplace", 0, 6, 10, 3); __PYX_ERR(0, 11, __pyx_L3_error)
3373 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nNodes_owned)) != 0)) kw_args--;
3375 __Pyx_RaiseArgtupleInvalid(
"smoothNodesLaplace", 0, 6, 10, 4); __PYX_ERR(0, 11, __pyx_L3_error)
3379 if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nd)) != 0)) kw_args--;
3381 __Pyx_RaiseArgtupleInvalid(
"smoothNodesLaplace", 0, 6, 10, 5); __PYX_ERR(0, 11, __pyx_L3_error)
3386 PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_simultaneous);
3387 if (value) { values[6] = value; kw_args--; }
3392 PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_smoothBoundaries);
3393 if (value) { values[7] = value; kw_args--; }
3398 PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fixedNodesBoolArray);
3399 if (value) { values[8] = value; kw_args--; }
3404 PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha);
3405 if (value) { values[9] = value; kw_args--; }
3408 if (unlikely(kw_args > 0)) {
3409 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"smoothNodesLaplace") < 0)) __PYX_ERR(0, 11, __pyx_L3_error)
3412 switch (PyTuple_GET_SIZE(__pyx_args)) {
3413 case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
3415 case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
3417 case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3419 case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3421 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3422 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3423 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3424 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3425 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3426 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3428 default:
goto __pyx_L5_argtuple_error;
3431 __pyx_v_nodeArray_ = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeArray_.memview)) __PYX_ERR(0, 11, __pyx_L3_error)
3432 __pyx_v_nodeStarOffsets = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeStarOffsets.memview)) __PYX_ERR(0, 12, __pyx_L3_error)
3433 __pyx_v_nodeStarArray = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeStarArray.memview)) __PYX_ERR(0, 13, __pyx_L3_error)
3434 __pyx_v_nodeMaterialTypes = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[3], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeMaterialTypes.memview)) __PYX_ERR(0, 14, __pyx_L3_error)
3435 __pyx_v_nNodes_owned = __Pyx_PyInt_As_int(values[4]);
if (unlikely((__pyx_v_nNodes_owned == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 15, __pyx_L3_error)
3436 __pyx_v_nd = __Pyx_PyInt_As_int(values[5]);
if (unlikely((__pyx_v_nd == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 16, __pyx_L3_error)
3438 __pyx_v_simultaneous = __Pyx_PyObject_IsTrue(values[6]);
if (unlikely((__pyx_v_simultaneous == ((
bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 17, __pyx_L3_error)
3448 __pyx_v_simultaneous = ((bool)0);
3451 __pyx_v_smoothBoundaries = __Pyx_PyObject_IsTrue(values[7]);
if (unlikely((__pyx_v_smoothBoundaries == ((
bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 18, __pyx_L3_error)
3461 __pyx_v_smoothBoundaries = ((bool)1);
3464 __pyx_v_fixedNodesBoolArray = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[8], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_fixedNodesBoolArray.memview)) __PYX_ERR(0, 19, __pyx_L3_error)
3466 __pyx_v_fixedNodesBoolArray = __pyx_k_;
3467 __PYX_INC_MEMVIEW(&__pyx_v_fixedNodesBoolArray, 1);
3470 __pyx_v_alpha = __pyx_PyFloat_AsDouble(values[9]);
if (unlikely((__pyx_v_alpha == (
double)-1) && PyErr_Occurred())) __PYX_ERR(0, 20, __pyx_L3_error)
3472 __pyx_v_alpha = ((double)0.);
3475 goto __pyx_L4_argument_unpacking_done;
3476 __pyx_L5_argtuple_error:;
3477 __Pyx_RaiseArgtupleInvalid(
"smoothNodesLaplace", 0, 6, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 11, __pyx_L3_error)
3479 __Pyx_AddTraceback(
"mprans.MeshSmoothing.smoothNodesLaplace", __pyx_clineno, __pyx_lineno, __pyx_filename);
3480 __Pyx_RefNannyFinishContext();
3482 __pyx_L4_argument_unpacking_done:;
3483 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_smoothNodesLaplace(__pyx_self, __pyx_v_nodeArray_, __pyx_v_nodeStarOffsets, __pyx_v_nodeStarArray, __pyx_v_nodeMaterialTypes, __pyx_v_nNodes_owned, __pyx_v_nd, __pyx_v_simultaneous, __pyx_v_smoothBoundaries, __pyx_v_fixedNodesBoolArray, __pyx_v_alpha);
3494 __Pyx_RefNannyFinishContext();
3498 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_smoothNodesLaplace(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_nodeArray_, __Pyx_memviewslice __pyx_v_nodeStarOffsets, __Pyx_memviewslice __pyx_v_nodeStarArray, __Pyx_memviewslice __pyx_v_nodeMaterialTypes,
int __pyx_v_nNodes_owned,
int __pyx_v_nd,
bool __pyx_v_simultaneous,
bool __pyx_v_smoothBoundaries, __Pyx_memviewslice __pyx_v_fixedNodesBoolArray,
double __pyx_v_alpha) {
3499 PyObject *__pyx_r = NULL;
3500 __Pyx_RefNannyDeclarations
3501 struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesLaplace __pyx_t_1;
3502 __Pyx_RefNannySetupContext(
"smoothNodesLaplace", 0);
3511 __pyx_t_1.__pyx_n = 4;
3512 __pyx_t_1.simultaneous = __pyx_v_simultaneous;
3513 __pyx_t_1.smoothBoundaries = __pyx_v_smoothBoundaries;
3514 __pyx_t_1.fixedNodesBoolArray = __pyx_v_fixedNodesBoolArray;
3515 __pyx_t_1.alpha = __pyx_v_alpha;
3516 __pyx_f_6mprans_13MeshSmoothing_cySmoothNodesLaplace(__pyx_v_nodeArray_, __pyx_v_nodeStarOffsets, __pyx_v_nodeStarArray, __pyx_v_nodeMaterialTypes, __pyx_v_nNodes_owned, __pyx_v_nd, &__pyx_t_1);
3527 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3528 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray_, 1);
3529 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeStarOffsets, 1);
3530 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeStarArray, 1);
3531 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeMaterialTypes, 1);
3532 __PYX_XDEC_MEMVIEW(&__pyx_v_fixedNodesBoolArray, 1);
3533 __Pyx_XGIVEREF(__pyx_r);
3534 __Pyx_RefNannyFinishContext();
3547 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_3smoothNodesCentroid(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
3548 static char __pyx_doc_6mprans_13MeshSmoothing_2smoothNodesCentroid[] =
"\n Centroid Smoothing:\n Mesh nodes are displaced to the centroid of the polygon/volume formed by\n neighbouring nodes\n\n Parameters\n ----------\n nodeArray_: double[:,:]\n array of mesh nodes\n (!) will be modified with smoothing\n nodeElementsOffsets: int[:]\n array to get offsets for neighbouring element numbers\n nodeElementsArray: int[:]\n array to get element number from nodeElementOffsets\n nodeMaterialTypes: int[:]\n array to know which node is interior node (materialType=0)\n elementBarycentersArray: double[:,:]\n barycenters of elements\n elementVolumesArray: double[:]\n volume of elements\n elementNodesArray: int[:,:]\n list of nodes per elements\n nNodes_owned: int\n number of nodes owned\n simultaneous: bool\n if True: simultaneous smoothing\n if False: sequential smoothing\n (!) will update areas/volumes and barycenters in this case\n smoothBoundaries: bool\n if True: boundaries are smoothed (only with surrounding boundary nodes)\n if False: boudnary nodes are fixed\n fixedNodesBoolArray: int[:]\n array of same length as nodeArray with:\n fixedNodesBoolArray[node] = 1 -> node is fixed\n fixedNodesBoolArray[node] = 0 -> node is not fixed\n alpha: double\n penalty term related to original position of nodes (0 <= alpha <= 1)\n ";
3549 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_3smoothNodesCentroid = {
"smoothNodesCentroid", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_3smoothNodesCentroid, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_13MeshSmoothing_2smoothNodesCentroid};
3550 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_3smoothNodesCentroid(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3551 __Pyx_memviewslice __pyx_v_nodeArray_ = { 0, 0, { 0 }, { 0 }, { 0 } };
3552 __Pyx_memviewslice __pyx_v_nodeElementOffsets = { 0, 0, { 0 }, { 0 }, { 0 } };
3553 __Pyx_memviewslice __pyx_v_nodeElementsArray = { 0, 0, { 0 }, { 0 }, { 0 } };
3554 __Pyx_memviewslice __pyx_v_nodeMaterialTypes = { 0, 0, { 0 }, { 0 }, { 0 } };
3555 __Pyx_memviewslice __pyx_v_elementBarycentersArray = { 0, 0, { 0 }, { 0 }, { 0 } };
3556 __Pyx_memviewslice __pyx_v_elementVolumesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
3557 __Pyx_memviewslice __pyx_v_elementNodesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
3558 int __pyx_v_nNodes_owned;
3559 bool __pyx_v_simultaneous;
3560 bool __pyx_v_smoothBoundaries;
3561 __Pyx_memviewslice __pyx_v_fixedNodesBoolArray = { 0, 0, { 0 }, { 0 }, { 0 } };
3562 double __pyx_v_alpha;
3563 PyObject *__pyx_r = 0;
3564 __Pyx_RefNannyDeclarations
3565 __Pyx_RefNannySetupContext(
"smoothNodesCentroid (wrapper)", 0);
3567 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nodeArray,&__pyx_n_s_nodeElementOffsets,&__pyx_n_s_nodeElementsArray,&__pyx_n_s_nodeMaterialTypes,&__pyx_n_s_elementBarycentersArray,&__pyx_n_s_elementVolumesArray,&__pyx_n_s_elementNodesArray,&__pyx_n_s_nNodes_owned,&__pyx_n_s_simultaneous,&__pyx_n_s_smoothBoundaries,&__pyx_n_s_fixedNodesBoolArray,&__pyx_n_s_alpha,0};
3568 PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
3569 if (unlikely(__pyx_kwds)) {
3571 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3573 case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
3575 case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
3577 case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
3579 case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
3581 case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3583 case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3585 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3587 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3589 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3591 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3593 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3595 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3598 default:
goto __pyx_L5_argtuple_error;
3600 kw_args = PyDict_Size(__pyx_kwds);
3603 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeArray)) != 0)) kw_args--;
3604 else goto __pyx_L5_argtuple_error;
3607 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementOffsets)) != 0)) kw_args--;
3609 __Pyx_RaiseArgtupleInvalid(
"smoothNodesCentroid", 0, 8, 12, 1); __PYX_ERR(0, 64, __pyx_L3_error)
3613 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementsArray)) != 0)) kw_args--;
3615 __Pyx_RaiseArgtupleInvalid(
"smoothNodesCentroid", 0, 8, 12, 2); __PYX_ERR(0, 64, __pyx_L3_error)
3619 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeMaterialTypes)) != 0)) kw_args--;
3621 __Pyx_RaiseArgtupleInvalid(
"smoothNodesCentroid", 0, 8, 12, 3); __PYX_ERR(0, 64, __pyx_L3_error)
3625 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBarycentersArray)) != 0)) kw_args--;
3627 __Pyx_RaiseArgtupleInvalid(
"smoothNodesCentroid", 0, 8, 12, 4); __PYX_ERR(0, 64, __pyx_L3_error)
3631 if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementVolumesArray)) != 0)) kw_args--;
3633 __Pyx_RaiseArgtupleInvalid(
"smoothNodesCentroid", 0, 8, 12, 5); __PYX_ERR(0, 64, __pyx_L3_error)
3637 if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementNodesArray)) != 0)) kw_args--;
3639 __Pyx_RaiseArgtupleInvalid(
"smoothNodesCentroid", 0, 8, 12, 6); __PYX_ERR(0, 64, __pyx_L3_error)
3643 if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nNodes_owned)) != 0)) kw_args--;
3645 __Pyx_RaiseArgtupleInvalid(
"smoothNodesCentroid", 0, 8, 12, 7); __PYX_ERR(0, 64, __pyx_L3_error)
3650 PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_simultaneous);
3651 if (value) { values[8] = value; kw_args--; }
3656 PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_smoothBoundaries);
3657 if (value) { values[9] = value; kw_args--; }
3662 PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fixedNodesBoolArray);
3663 if (value) { values[10] = value; kw_args--; }
3668 PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha);
3669 if (value) { values[11] = value; kw_args--; }
3672 if (unlikely(kw_args > 0)) {
3673 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"smoothNodesCentroid") < 0)) __PYX_ERR(0, 64, __pyx_L3_error)
3676 switch (PyTuple_GET_SIZE(__pyx_args)) {
3677 case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
3679 case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
3681 case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
3683 case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
3685 case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
3686 values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
3687 values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
3688 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
3689 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3690 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3691 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3692 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3694 default:
goto __pyx_L5_argtuple_error;
3697 __pyx_v_nodeArray_ = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeArray_.memview)) __PYX_ERR(0, 64, __pyx_L3_error)
3698 __pyx_v_nodeElementOffsets = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementOffsets.memview)) __PYX_ERR(0, 65, __pyx_L3_error)
3699 __pyx_v_nodeElementsArray = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementsArray.memview)) __PYX_ERR(0, 66, __pyx_L3_error)
3700 __pyx_v_nodeMaterialTypes = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[3], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeMaterialTypes.memview)) __PYX_ERR(0, 67, __pyx_L3_error)
3701 __pyx_v_elementBarycentersArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[4], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBarycentersArray.memview)) __PYX_ERR(0, 68, __pyx_L3_error)
3702 __pyx_v_elementVolumesArray = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[5], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementVolumesArray.memview)) __PYX_ERR(0, 69, __pyx_L3_error)
3703 __pyx_v_elementNodesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[6], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementNodesArray.memview)) __PYX_ERR(0, 70, __pyx_L3_error)
3704 __pyx_v_nNodes_owned = __Pyx_PyInt_As_int(values[7]);
if (unlikely((__pyx_v_nNodes_owned == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L3_error)
3706 __pyx_v_simultaneous = __Pyx_PyObject_IsTrue(values[8]);
if (unlikely((__pyx_v_simultaneous == ((
bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 72, __pyx_L3_error)
3716 __pyx_v_simultaneous = ((bool)1);
3719 __pyx_v_smoothBoundaries = __Pyx_PyObject_IsTrue(values[9]);
if (unlikely((__pyx_v_smoothBoundaries == ((
bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 73, __pyx_L3_error)
3729 __pyx_v_smoothBoundaries = ((bool)1);
3732 __pyx_v_fixedNodesBoolArray = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[10], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_fixedNodesBoolArray.memview)) __PYX_ERR(0, 74, __pyx_L3_error)
3734 __pyx_v_fixedNodesBoolArray = __pyx_k__2;
3735 __PYX_INC_MEMVIEW(&__pyx_v_fixedNodesBoolArray, 1);
3738 __pyx_v_alpha = __pyx_PyFloat_AsDouble(values[11]);
if (unlikely((__pyx_v_alpha == (
double)-1) && PyErr_Occurred())) __PYX_ERR(0, 75, __pyx_L3_error)
3740 __pyx_v_alpha = ((double)0.);
3743 goto __pyx_L4_argument_unpacking_done;
3744 __pyx_L5_argtuple_error:;
3745 __Pyx_RaiseArgtupleInvalid(
"smoothNodesCentroid", 0, 8, 12, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 64, __pyx_L3_error)
3747 __Pyx_AddTraceback(
"mprans.MeshSmoothing.smoothNodesCentroid", __pyx_clineno, __pyx_lineno, __pyx_filename);
3748 __Pyx_RefNannyFinishContext();
3750 __pyx_L4_argument_unpacking_done:;
3751 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_2smoothNodesCentroid(__pyx_self, __pyx_v_nodeArray_, __pyx_v_nodeElementOffsets, __pyx_v_nodeElementsArray, __pyx_v_nodeMaterialTypes, __pyx_v_elementBarycentersArray, __pyx_v_elementVolumesArray, __pyx_v_elementNodesArray, __pyx_v_nNodes_owned, __pyx_v_simultaneous, __pyx_v_smoothBoundaries, __pyx_v_fixedNodesBoolArray, __pyx_v_alpha);
3762 __Pyx_RefNannyFinishContext();
3766 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_2smoothNodesCentroid(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_nodeArray_, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_nodeMaterialTypes, __Pyx_memviewslice __pyx_v_elementBarycentersArray, __Pyx_memviewslice __pyx_v_elementVolumesArray, __Pyx_memviewslice __pyx_v_elementNodesArray,
int __pyx_v_nNodes_owned,
bool __pyx_v_simultaneous,
bool __pyx_v_smoothBoundaries, __Pyx_memviewslice __pyx_v_fixedNodesBoolArray,
double __pyx_v_alpha) {
3767 PyObject *__pyx_r = NULL;
3768 __Pyx_RefNannyDeclarations
3769 struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesCentroid __pyx_t_1;
3770 __Pyx_RefNannySetupContext(
"smoothNodesCentroid", 0);
3779 __pyx_t_1.__pyx_n = 3;
3780 __pyx_t_1.simultaneous = __pyx_v_simultaneous;
3781 __pyx_t_1.smoothBoundaries = __pyx_v_smoothBoundaries;
3782 __pyx_t_1.alpha = __pyx_v_alpha;
3783 __pyx_f_6mprans_13MeshSmoothing_cySmoothNodesCentroid(__pyx_v_nodeArray_, __pyx_v_nodeElementOffsets, __pyx_v_nodeElementsArray, __pyx_v_nodeMaterialTypes, __pyx_v_elementVolumesArray, __pyx_v_elementBarycentersArray, __pyx_v_elementNodesArray, __pyx_v_nNodes_owned, __pyx_v_fixedNodesBoolArray, &__pyx_t_1);
3794 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3795 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray_, 1);
3796 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementOffsets, 1);
3797 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementsArray, 1);
3798 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeMaterialTypes, 1);
3799 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBarycentersArray, 1);
3800 __PYX_XDEC_MEMVIEW(&__pyx_v_elementVolumesArray, 1);
3801 __PYX_XDEC_MEMVIEW(&__pyx_v_elementNodesArray, 1);
3802 __PYX_XDEC_MEMVIEW(&__pyx_v_fixedNodesBoolArray, 1);
3803 __Pyx_XGIVEREF(__pyx_r);
3804 __Pyx_RefNannyFinishContext();
3817 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_5updateDilationElements(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
3818 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_5updateDilationElements = {
"updateDilationElements", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_5updateDilationElements, METH_VARARGS|METH_KEYWORDS, 0};
3819 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_5updateDilationElements(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3820 __Pyx_memviewslice __pyx_v_elementDilationArray_ = { 0, 0, { 0 }, { 0 }, { 0 } };
3821 __Pyx_memviewslice __pyx_v_elementVolumeArray = { 0, 0, { 0 }, { 0 }, { 0 } };
3822 __Pyx_memviewslice __pyx_v_elementVolumeTargetArray = { 0, 0, { 0 }, { 0 }, { 0 } };
3823 int __pyx_v_nElements;
3824 PyObject *__pyx_r = 0;
3825 __Pyx_RefNannyDeclarations
3826 __Pyx_RefNannySetupContext(
"updateDilationElements (wrapper)", 0);
3828 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_elementDilationArray,&__pyx_n_s_elementVolumeArray,&__pyx_n_s_elementVolumeTargetArray,&__pyx_n_s_nElements,0};
3829 PyObject* values[4] = {0,0,0,0};
3830 if (unlikely(__pyx_kwds)) {
3832 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3834 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3836 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3838 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3840 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3843 default:
goto __pyx_L5_argtuple_error;
3845 kw_args = PyDict_Size(__pyx_kwds);
3848 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementDilationArray)) != 0)) kw_args--;
3849 else goto __pyx_L5_argtuple_error;
3852 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementVolumeArray)) != 0)) kw_args--;
3854 __Pyx_RaiseArgtupleInvalid(
"updateDilationElements", 1, 4, 4, 1); __PYX_ERR(0, 127, __pyx_L3_error)
3858 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementVolumeTargetArray)) != 0)) kw_args--;
3860 __Pyx_RaiseArgtupleInvalid(
"updateDilationElements", 1, 4, 4, 2); __PYX_ERR(0, 127, __pyx_L3_error)
3864 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nElements)) != 0)) kw_args--;
3866 __Pyx_RaiseArgtupleInvalid(
"updateDilationElements", 1, 4, 4, 3); __PYX_ERR(0, 127, __pyx_L3_error)
3869 if (unlikely(kw_args > 0)) {
3870 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"updateDilationElements") < 0)) __PYX_ERR(0, 127, __pyx_L3_error)
3872 }
else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
3873 goto __pyx_L5_argtuple_error;
3875 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3876 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3877 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
3878 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
3880 __pyx_v_elementDilationArray_ = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementDilationArray_.memview)) __PYX_ERR(0, 127, __pyx_L3_error)
3881 __pyx_v_elementVolumeArray = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementVolumeArray.memview)) __PYX_ERR(0, 128, __pyx_L3_error)
3882 __pyx_v_elementVolumeTargetArray = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementVolumeTargetArray.memview)) __PYX_ERR(0, 129, __pyx_L3_error)
3883 __pyx_v_nElements = __Pyx_PyInt_As_int(values[3]);
if (unlikely((__pyx_v_nElements == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 130, __pyx_L3_error)
3885 goto __pyx_L4_argument_unpacking_done;
3886 __pyx_L5_argtuple_error:;
3887 __Pyx_RaiseArgtupleInvalid(
"updateDilationElements", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 127, __pyx_L3_error)
3889 __Pyx_AddTraceback(
"mprans.MeshSmoothing.updateDilationElements", __pyx_clineno, __pyx_lineno, __pyx_filename);
3890 __Pyx_RefNannyFinishContext();
3892 __pyx_L4_argument_unpacking_done:;
3893 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_4updateDilationElements(__pyx_self, __pyx_v_elementDilationArray_, __pyx_v_elementVolumeArray, __pyx_v_elementVolumeTargetArray, __pyx_v_nElements);
3896 __Pyx_RefNannyFinishContext();
3900 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_4updateDilationElements(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_elementDilationArray_, __Pyx_memviewslice __pyx_v_elementVolumeArray, __Pyx_memviewslice __pyx_v_elementVolumeTargetArray,
int __pyx_v_nElements) {
3901 PyObject *__pyx_r = NULL;
3902 __Pyx_RefNannyDeclarations
3903 __Pyx_RefNannySetupContext(
"updateDilationElements", 0);
3912 __pyx_f_6mprans_13MeshSmoothing_cyUpdateDilationElements(__pyx_v_elementDilationArray_, __pyx_v_elementVolumeArray, __pyx_v_elementVolumeTargetArray, __pyx_v_nElements);
3923 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3924 __PYX_XDEC_MEMVIEW(&__pyx_v_elementDilationArray_, 1);
3925 __PYX_XDEC_MEMVIEW(&__pyx_v_elementVolumeArray, 1);
3926 __PYX_XDEC_MEMVIEW(&__pyx_v_elementVolumeTargetArray, 1);
3927 __Pyx_XGIVEREF(__pyx_r);
3928 __Pyx_RefNannyFinishContext();
3941 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_7getDilationElements(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
3942 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_7getDilationElements = {
"getDilationElements", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_7getDilationElements, METH_VARARGS|METH_KEYWORDS, 0};
3943 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_7getDilationElements(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3944 __Pyx_memviewslice __pyx_v_elementVolumeArray = { 0, 0, { 0 }, { 0 }, { 0 } };
3945 __Pyx_memviewslice __pyx_v_elementVolumeTargetArray = { 0, 0, { 0 }, { 0 }, { 0 } };
3946 PyObject *__pyx_r = 0;
3947 __Pyx_RefNannyDeclarations
3948 __Pyx_RefNannySetupContext(
"getDilationElements (wrapper)", 0);
3950 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_elementVolumeArray,&__pyx_n_s_elementVolumeTargetArray,0};
3951 PyObject* values[2] = {0,0};
3952 if (unlikely(__pyx_kwds)) {
3954 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
3956 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3958 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3961 default:
goto __pyx_L5_argtuple_error;
3963 kw_args = PyDict_Size(__pyx_kwds);
3966 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementVolumeArray)) != 0)) kw_args--;
3967 else goto __pyx_L5_argtuple_error;
3970 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementVolumeTargetArray)) != 0)) kw_args--;
3972 __Pyx_RaiseArgtupleInvalid(
"getDilationElements", 1, 2, 2, 1); __PYX_ERR(0, 136, __pyx_L3_error)
3975 if (unlikely(kw_args > 0)) {
3976 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"getDilationElements") < 0)) __PYX_ERR(0, 136, __pyx_L3_error)
3978 }
else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
3979 goto __pyx_L5_argtuple_error;
3981 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
3982 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
3984 __pyx_v_elementVolumeArray = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementVolumeArray.memview)) __PYX_ERR(0, 136, __pyx_L3_error)
3985 __pyx_v_elementVolumeTargetArray = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementVolumeTargetArray.memview)) __PYX_ERR(0, 137, __pyx_L3_error)
3987 goto __pyx_L4_argument_unpacking_done;
3988 __pyx_L5_argtuple_error:;
3989 __Pyx_RaiseArgtupleInvalid(
"getDilationElements", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 136, __pyx_L3_error)
3991 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getDilationElements", __pyx_clineno, __pyx_lineno, __pyx_filename);
3992 __Pyx_RefNannyFinishContext();
3994 __pyx_L4_argument_unpacking_done:;
3995 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_6getDilationElements(__pyx_self, __pyx_v_elementVolumeArray, __pyx_v_elementVolumeTargetArray);
3998 __Pyx_RefNannyFinishContext();
4002 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_6getDilationElements(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_elementVolumeArray, __Pyx_memviewslice __pyx_v_elementVolumeTargetArray) {
4003 int __pyx_v_nElements;
4004 PyObject *__pyx_v_elementDilationArray_ = NULL;
4005 PyObject *__pyx_r = NULL;
4006 __Pyx_RefNannyDeclarations
4008 PyObject *__pyx_t_2 = NULL;
4009 PyObject *__pyx_t_3 = NULL;
4010 PyObject *__pyx_t_4 = NULL;
4011 PyObject *__pyx_t_5 = NULL;
4012 __Pyx_memviewslice __pyx_t_6 = { 0, 0, { 0 }, { 0 }, { 0 } };
4013 __Pyx_RefNannySetupContext(
"getDilationElements", 0);
4022 __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_elementVolumeArray);
4023 __pyx_v_nElements = __pyx_t_1;
4032 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 139, __pyx_L1_error)
4033 __Pyx_GOTREF(__pyx_t_3);
4034 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 139, __pyx_L1_error)
4035 __Pyx_GOTREF(__pyx_t_4);
4036 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4037 __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nElements);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 139, __pyx_L1_error)
4038 __Pyx_GOTREF(__pyx_t_3);
4040 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
4041 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
4042 if (likely(__pyx_t_5)) {
4043 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_4);
4044 __Pyx_INCREF(__pyx_t_5);
4045 __Pyx_INCREF(
function);
4046 __Pyx_DECREF_SET(__pyx_t_4,
function);
4049 __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3);
4050 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4051 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4052 if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error)
4053 __Pyx_GOTREF(__pyx_t_2);
4054 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4055 __pyx_v_elementDilationArray_ = __pyx_t_2;
4065 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_elementDilationArray_, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 140, __pyx_L1_error)
4074 __pyx_f_6mprans_13MeshSmoothing_cyUpdateDilationElements(__pyx_t_6, __pyx_v_elementVolumeArray, __pyx_v_elementVolumeTargetArray, __pyx_v_nElements);
4075 __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
4076 __pyx_t_6.memview = NULL;
4077 __pyx_t_6.data = NULL;
4086 __Pyx_XDECREF(__pyx_r);
4087 __Pyx_INCREF(__pyx_v_elementDilationArray_);
4088 __pyx_r = __pyx_v_elementDilationArray_;
4101 __Pyx_XDECREF(__pyx_t_2);
4102 __Pyx_XDECREF(__pyx_t_3);
4103 __Pyx_XDECREF(__pyx_t_4);
4104 __Pyx_XDECREF(__pyx_t_5);
4105 __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
4106 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getDilationElements", __pyx_clineno, __pyx_lineno, __pyx_filename);
4109 __Pyx_XDECREF(__pyx_v_elementDilationArray_);
4110 __PYX_XDEC_MEMVIEW(&__pyx_v_elementVolumeArray, 1);
4111 __PYX_XDEC_MEMVIEW(&__pyx_v_elementVolumeTargetArray, 1);
4112 __Pyx_XGIVEREF(__pyx_r);
4113 __Pyx_RefNannyFinishContext();
4126 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_9updateDistortionElements(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
4127 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_9updateDistortionElements = {
"updateDistortionElements", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_9updateDistortionElements, METH_VARARGS|METH_KEYWORDS, 0};
4128 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_9updateDistortionElements(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4129 __Pyx_memviewslice __pyx_v_elementDistortionArray_ = { 0, 0, { 0 }, { 0 }, { 0 } };
4130 __Pyx_memviewslice __pyx_v_J_array = { 0, 0, { 0 }, { 0 }, { 0 } };
4131 __Pyx_memviewslice __pyx_v_detJ_array = { 0, 0, { 0 }, { 0 }, { 0 } };
4133 int __pyx_v_nElements;
4134 PyObject *__pyx_r = 0;
4135 __Pyx_RefNannyDeclarations
4136 __Pyx_RefNannySetupContext(
"updateDistortionElements (wrapper)", 0);
4138 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_elementDistortionArray,&__pyx_n_s_J_array,&__pyx_n_s_detJ_array,&__pyx_n_s_nd,&__pyx_n_s_nElements,0};
4139 PyObject* values[5] = {0,0,0,0,0};
4140 if (unlikely(__pyx_kwds)) {
4142 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4144 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4146 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4148 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4150 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4152 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4155 default:
goto __pyx_L5_argtuple_error;
4157 kw_args = PyDict_Size(__pyx_kwds);
4160 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementDistortionArray)) != 0)) kw_args--;
4161 else goto __pyx_L5_argtuple_error;
4164 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J_array)) != 0)) kw_args--;
4166 __Pyx_RaiseArgtupleInvalid(
"updateDistortionElements", 1, 5, 5, 1); __PYX_ERR(0, 146, __pyx_L3_error)
4170 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_detJ_array)) != 0)) kw_args--;
4172 __Pyx_RaiseArgtupleInvalid(
"updateDistortionElements", 1, 5, 5, 2); __PYX_ERR(0, 146, __pyx_L3_error)
4176 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nd)) != 0)) kw_args--;
4178 __Pyx_RaiseArgtupleInvalid(
"updateDistortionElements", 1, 5, 5, 3); __PYX_ERR(0, 146, __pyx_L3_error)
4182 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nElements)) != 0)) kw_args--;
4184 __Pyx_RaiseArgtupleInvalid(
"updateDistortionElements", 1, 5, 5, 4); __PYX_ERR(0, 146, __pyx_L3_error)
4187 if (unlikely(kw_args > 0)) {
4188 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"updateDistortionElements") < 0)) __PYX_ERR(0, 146, __pyx_L3_error)
4190 }
else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
4191 goto __pyx_L5_argtuple_error;
4193 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4194 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4195 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4196 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4197 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4199 __pyx_v_elementDistortionArray_ = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementDistortionArray_.memview)) __PYX_ERR(0, 146, __pyx_L3_error)
4200 __pyx_v_J_array = __Pyx_PyObject_to_MemoryviewSlice_dsdsdsds_double(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_J_array.memview)) __PYX_ERR(0, 147, __pyx_L3_error)
4201 __pyx_v_detJ_array = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_detJ_array.memview)) __PYX_ERR(0, 148, __pyx_L3_error)
4202 __pyx_v_nd = __Pyx_PyInt_As_int(values[3]);
if (unlikely((__pyx_v_nd == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 149, __pyx_L3_error)
4203 __pyx_v_nElements = __Pyx_PyInt_As_int(values[4]);
if (unlikely((__pyx_v_nElements == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 150, __pyx_L3_error)
4205 goto __pyx_L4_argument_unpacking_done;
4206 __pyx_L5_argtuple_error:;
4207 __Pyx_RaiseArgtupleInvalid(
"updateDistortionElements", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 146, __pyx_L3_error)
4209 __Pyx_AddTraceback(
"mprans.MeshSmoothing.updateDistortionElements", __pyx_clineno, __pyx_lineno, __pyx_filename);
4210 __Pyx_RefNannyFinishContext();
4212 __pyx_L4_argument_unpacking_done:;
4213 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_8updateDistortionElements(__pyx_self, __pyx_v_elementDistortionArray_, __pyx_v_J_array, __pyx_v_detJ_array, __pyx_v_nd, __pyx_v_nElements);
4216 __Pyx_RefNannyFinishContext();
4220 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_8updateDistortionElements(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_elementDistortionArray_, __Pyx_memviewslice __pyx_v_J_array, __Pyx_memviewslice __pyx_v_detJ_array,
int __pyx_v_nd,
int __pyx_v_nElements) {
4221 PyObject *__pyx_r = NULL;
4222 __Pyx_RefNannyDeclarations
4223 __Pyx_RefNannySetupContext(
"updateDistortionElements", 0);
4232 __pyx_f_6mprans_13MeshSmoothing_cyUpdateDistortionElements(__pyx_v_elementDistortionArray_, __pyx_v_J_array, __pyx_v_detJ_array, __pyx_v_nd, __pyx_v_nElements);
4243 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4244 __PYX_XDEC_MEMVIEW(&__pyx_v_elementDistortionArray_, 1);
4245 __PYX_XDEC_MEMVIEW(&__pyx_v_J_array, 1);
4246 __PYX_XDEC_MEMVIEW(&__pyx_v_detJ_array, 1);
4247 __Pyx_XGIVEREF(__pyx_r);
4248 __Pyx_RefNannyFinishContext();
4261 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_11getDistortionElements(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
4262 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_11getDistortionElements = {
"getDistortionElements", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_11getDistortionElements, METH_VARARGS|METH_KEYWORDS, 0};
4263 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_11getDistortionElements(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4264 __Pyx_memviewslice __pyx_v_J_array = { 0, 0, { 0 }, { 0 }, { 0 } };
4265 __Pyx_memviewslice __pyx_v_detJ_array = { 0, 0, { 0 }, { 0 }, { 0 } };
4267 PyObject *__pyx_r = 0;
4268 __Pyx_RefNannyDeclarations
4269 __Pyx_RefNannySetupContext(
"getDistortionElements (wrapper)", 0);
4271 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_J_array,&__pyx_n_s_detJ_array,&__pyx_n_s_nd,0};
4272 PyObject* values[3] = {0,0,0};
4273 if (unlikely(__pyx_kwds)) {
4275 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4277 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4279 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4281 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4284 default:
goto __pyx_L5_argtuple_error;
4286 kw_args = PyDict_Size(__pyx_kwds);
4289 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J_array)) != 0)) kw_args--;
4290 else goto __pyx_L5_argtuple_error;
4293 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_detJ_array)) != 0)) kw_args--;
4295 __Pyx_RaiseArgtupleInvalid(
"getDistortionElements", 1, 3, 3, 1); __PYX_ERR(0, 157, __pyx_L3_error)
4299 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nd)) != 0)) kw_args--;
4301 __Pyx_RaiseArgtupleInvalid(
"getDistortionElements", 1, 3, 3, 2); __PYX_ERR(0, 157, __pyx_L3_error)
4304 if (unlikely(kw_args > 0)) {
4305 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"getDistortionElements") < 0)) __PYX_ERR(0, 157, __pyx_L3_error)
4307 }
else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
4308 goto __pyx_L5_argtuple_error;
4310 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4311 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4312 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4314 __pyx_v_J_array = __Pyx_PyObject_to_MemoryviewSlice_dsdsdsds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_J_array.memview)) __PYX_ERR(0, 157, __pyx_L3_error)
4315 __pyx_v_detJ_array = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_detJ_array.memview)) __PYX_ERR(0, 158, __pyx_L3_error)
4316 __pyx_v_nd = __Pyx_PyInt_As_int(values[2]);
if (unlikely((__pyx_v_nd == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 159, __pyx_L3_error)
4318 goto __pyx_L4_argument_unpacking_done;
4319 __pyx_L5_argtuple_error:;
4320 __Pyx_RaiseArgtupleInvalid(
"getDistortionElements", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 157, __pyx_L3_error)
4322 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getDistortionElements", __pyx_clineno, __pyx_lineno, __pyx_filename);
4323 __Pyx_RefNannyFinishContext();
4325 __pyx_L4_argument_unpacking_done:;
4326 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_10getDistortionElements(__pyx_self, __pyx_v_J_array, __pyx_v_detJ_array, __pyx_v_nd);
4329 __Pyx_RefNannyFinishContext();
4333 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_10getDistortionElements(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_J_array, __Pyx_memviewslice __pyx_v_detJ_array,
int __pyx_v_nd) {
4334 Py_ssize_t __pyx_v_nElements;
4335 PyObject *__pyx_v_elementDistortionArray_ = NULL;
4336 PyObject *__pyx_r = NULL;
4337 __Pyx_RefNannyDeclarations
4339 PyObject *__pyx_t_2 = NULL;
4340 PyObject *__pyx_t_3 = NULL;
4341 PyObject *__pyx_t_4 = NULL;
4342 PyObject *__pyx_t_5 = NULL;
4343 __Pyx_memviewslice __pyx_t_6 = { 0, 0, { 0 }, { 0 }, { 0 } };
4344 __Pyx_RefNannySetupContext(
"getDistortionElements", 0);
4353 __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_detJ_array);
4354 __pyx_v_nElements = __pyx_t_1;
4363 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 161, __pyx_L1_error)
4364 __Pyx_GOTREF(__pyx_t_3);
4365 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 161, __pyx_L1_error)
4366 __Pyx_GOTREF(__pyx_t_4);
4367 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4368 __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_nElements);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 161, __pyx_L1_error)
4369 __Pyx_GOTREF(__pyx_t_3);
4371 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
4372 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
4373 if (likely(__pyx_t_5)) {
4374 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_4);
4375 __Pyx_INCREF(__pyx_t_5);
4376 __Pyx_INCREF(
function);
4377 __Pyx_DECREF_SET(__pyx_t_4,
function);
4380 __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3);
4381 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4382 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4383 if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 161, __pyx_L1_error)
4384 __Pyx_GOTREF(__pyx_t_2);
4385 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4386 __pyx_v_elementDistortionArray_ = __pyx_t_2;
4396 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_elementDistortionArray_, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 162, __pyx_L1_error)
4405 __pyx_f_6mprans_13MeshSmoothing_cyUpdateDistortionElements(__pyx_t_6, __pyx_v_J_array, __pyx_v_detJ_array, __pyx_v_nd, __pyx_v_nElements);
4406 __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
4407 __pyx_t_6.memview = NULL;
4408 __pyx_t_6.data = NULL;
4417 __Pyx_XDECREF(__pyx_r);
4418 __Pyx_INCREF(__pyx_v_elementDistortionArray_);
4419 __pyx_r = __pyx_v_elementDistortionArray_;
4432 __Pyx_XDECREF(__pyx_t_2);
4433 __Pyx_XDECREF(__pyx_t_3);
4434 __Pyx_XDECREF(__pyx_t_4);
4435 __Pyx_XDECREF(__pyx_t_5);
4436 __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
4437 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getDistortionElements", __pyx_clineno, __pyx_lineno, __pyx_filename);
4440 __Pyx_XDECREF(__pyx_v_elementDistortionArray_);
4441 __PYX_XDEC_MEMVIEW(&__pyx_v_J_array, 1);
4442 __PYX_XDEC_MEMVIEW(&__pyx_v_detJ_array, 1);
4443 __Pyx_XGIVEREF(__pyx_r);
4444 __Pyx_RefNannyFinishContext();
4457 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_13updateInverseMeanRatioTriangleElements(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
4458 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_13updateInverseMeanRatioTriangleElements = {
"updateInverseMeanRatioTriangleElements", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_13updateInverseMeanRatioTriangleElements, METH_VARARGS|METH_KEYWORDS, 0};
4459 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_13updateInverseMeanRatioTriangleElements(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4460 __Pyx_memviewslice __pyx_v_IMRElementsArray_ = { 0, 0, { 0 }, { 0 }, { 0 } };
4461 __Pyx_memviewslice __pyx_v_nodeArray = { 0, 0, { 0 }, { 0 }, { 0 } };
4462 __Pyx_memviewslice __pyx_v_elementNodesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
4463 int __pyx_v_nElements;
4464 PyObject *__pyx_r = 0;
4465 __Pyx_RefNannyDeclarations
4466 __Pyx_RefNannySetupContext(
"updateInverseMeanRatioTriangleElements (wrapper)", 0);
4468 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_IMRElementsArray,&__pyx_n_s_nodeArray_2,&__pyx_n_s_elementNodesArray,&__pyx_n_s_nElements,0};
4469 PyObject* values[4] = {0,0,0,0};
4470 if (unlikely(__pyx_kwds)) {
4472 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4474 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4476 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4478 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4480 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4483 default:
goto __pyx_L5_argtuple_error;
4485 kw_args = PyDict_Size(__pyx_kwds);
4488 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_IMRElementsArray)) != 0)) kw_args--;
4489 else goto __pyx_L5_argtuple_error;
4492 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeArray_2)) != 0)) kw_args--;
4494 __Pyx_RaiseArgtupleInvalid(
"updateInverseMeanRatioTriangleElements", 1, 4, 4, 1); __PYX_ERR(0, 169, __pyx_L3_error)
4498 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementNodesArray)) != 0)) kw_args--;
4500 __Pyx_RaiseArgtupleInvalid(
"updateInverseMeanRatioTriangleElements", 1, 4, 4, 2); __PYX_ERR(0, 169, __pyx_L3_error)
4504 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nElements)) != 0)) kw_args--;
4506 __Pyx_RaiseArgtupleInvalid(
"updateInverseMeanRatioTriangleElements", 1, 4, 4, 3); __PYX_ERR(0, 169, __pyx_L3_error)
4509 if (unlikely(kw_args > 0)) {
4510 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"updateInverseMeanRatioTriangleElements") < 0)) __PYX_ERR(0, 169, __pyx_L3_error)
4512 }
else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
4513 goto __pyx_L5_argtuple_error;
4515 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4516 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4517 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4518 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4520 __pyx_v_IMRElementsArray_ = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_IMRElementsArray_.memview)) __PYX_ERR(0, 169, __pyx_L3_error)
4521 __pyx_v_nodeArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeArray.memview)) __PYX_ERR(0, 170, __pyx_L3_error)
4522 __pyx_v_elementNodesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementNodesArray.memview)) __PYX_ERR(0, 171, __pyx_L3_error)
4523 __pyx_v_nElements = __Pyx_PyInt_As_int(values[3]);
if (unlikely((__pyx_v_nElements == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 172, __pyx_L3_error)
4525 goto __pyx_L4_argument_unpacking_done;
4526 __pyx_L5_argtuple_error:;
4527 __Pyx_RaiseArgtupleInvalid(
"updateInverseMeanRatioTriangleElements", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 169, __pyx_L3_error)
4529 __Pyx_AddTraceback(
"mprans.MeshSmoothing.updateInverseMeanRatioTriangleElements", __pyx_clineno, __pyx_lineno, __pyx_filename);
4530 __Pyx_RefNannyFinishContext();
4532 __pyx_L4_argument_unpacking_done:;
4533 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_12updateInverseMeanRatioTriangleElements(__pyx_self, __pyx_v_IMRElementsArray_, __pyx_v_nodeArray, __pyx_v_elementNodesArray, __pyx_v_nElements);
4536 __Pyx_RefNannyFinishContext();
4540 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_12updateInverseMeanRatioTriangleElements(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_IMRElementsArray_, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementNodesArray,
int __pyx_v_nElements) {
4541 PyObject *__pyx_r = NULL;
4542 __Pyx_RefNannyDeclarations
4543 __Pyx_RefNannySetupContext(
"updateInverseMeanRatioTriangleElements", 0);
4552 __pyx_f_6mprans_13MeshSmoothing_cyUpdateInverseMeanRatioTriangleElements(__pyx_v_IMRElementsArray_, __pyx_v_nodeArray, __pyx_v_elementNodesArray, __pyx_v_nElements);
4563 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4564 __PYX_XDEC_MEMVIEW(&__pyx_v_IMRElementsArray_, 1);
4565 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray, 1);
4566 __PYX_XDEC_MEMVIEW(&__pyx_v_elementNodesArray, 1);
4567 __Pyx_XGIVEREF(__pyx_r);
4568 __Pyx_RefNannyFinishContext();
4581 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_15getInverseMeanRatioTriangleElements(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
4582 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_15getInverseMeanRatioTriangleElements = {
"getInverseMeanRatioTriangleElements", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_15getInverseMeanRatioTriangleElements, METH_VARARGS|METH_KEYWORDS, 0};
4583 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_15getInverseMeanRatioTriangleElements(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4584 __Pyx_memviewslice __pyx_v_nodeArray = { 0, 0, { 0 }, { 0 }, { 0 } };
4585 __Pyx_memviewslice __pyx_v_elementNodesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
4586 PyObject *__pyx_r = 0;
4587 __Pyx_RefNannyDeclarations
4588 __Pyx_RefNannySetupContext(
"getInverseMeanRatioTriangleElements (wrapper)", 0);
4590 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nodeArray_2,&__pyx_n_s_elementNodesArray,0};
4591 PyObject* values[2] = {0,0};
4592 if (unlikely(__pyx_kwds)) {
4594 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4596 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4598 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4601 default:
goto __pyx_L5_argtuple_error;
4603 kw_args = PyDict_Size(__pyx_kwds);
4606 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeArray_2)) != 0)) kw_args--;
4607 else goto __pyx_L5_argtuple_error;
4610 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementNodesArray)) != 0)) kw_args--;
4612 __Pyx_RaiseArgtupleInvalid(
"getInverseMeanRatioTriangleElements", 1, 2, 2, 1); __PYX_ERR(0, 178, __pyx_L3_error)
4615 if (unlikely(kw_args > 0)) {
4616 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"getInverseMeanRatioTriangleElements") < 0)) __PYX_ERR(0, 178, __pyx_L3_error)
4618 }
else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
4619 goto __pyx_L5_argtuple_error;
4621 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4622 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4624 __pyx_v_nodeArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeArray.memview)) __PYX_ERR(0, 178, __pyx_L3_error)
4625 __pyx_v_elementNodesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementNodesArray.memview)) __PYX_ERR(0, 179, __pyx_L3_error)
4627 goto __pyx_L4_argument_unpacking_done;
4628 __pyx_L5_argtuple_error:;
4629 __Pyx_RaiseArgtupleInvalid(
"getInverseMeanRatioTriangleElements", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 178, __pyx_L3_error)
4631 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getInverseMeanRatioTriangleElements", __pyx_clineno, __pyx_lineno, __pyx_filename);
4632 __Pyx_RefNannyFinishContext();
4634 __pyx_L4_argument_unpacking_done:;
4635 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_14getInverseMeanRatioTriangleElements(__pyx_self, __pyx_v_nodeArray, __pyx_v_elementNodesArray);
4638 __Pyx_RefNannyFinishContext();
4642 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_14getInverseMeanRatioTriangleElements(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementNodesArray) {
4643 int __pyx_v_nElements;
4644 PyObject *__pyx_v_IMRElementsArray_ = NULL;
4645 PyObject *__pyx_r = NULL;
4646 __Pyx_RefNannyDeclarations
4648 PyObject *__pyx_t_2 = NULL;
4649 PyObject *__pyx_t_3 = NULL;
4650 PyObject *__pyx_t_4 = NULL;
4651 PyObject *__pyx_t_5 = NULL;
4652 __Pyx_memviewslice __pyx_t_6 = { 0, 0, { 0 }, { 0 }, { 0 } };
4653 __Pyx_RefNannySetupContext(
"getInverseMeanRatioTriangleElements", 0);
4662 __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_elementNodesArray);
4663 __pyx_v_nElements = __pyx_t_1;
4672 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 181, __pyx_L1_error)
4673 __Pyx_GOTREF(__pyx_t_3);
4674 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 181, __pyx_L1_error)
4675 __Pyx_GOTREF(__pyx_t_4);
4676 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4677 __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nElements);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 181, __pyx_L1_error)
4678 __Pyx_GOTREF(__pyx_t_3);
4680 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
4681 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
4682 if (likely(__pyx_t_5)) {
4683 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_4);
4684 __Pyx_INCREF(__pyx_t_5);
4685 __Pyx_INCREF(
function);
4686 __Pyx_DECREF_SET(__pyx_t_4,
function);
4689 __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3);
4690 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4691 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4692 if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 181, __pyx_L1_error)
4693 __Pyx_GOTREF(__pyx_t_2);
4694 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4695 __pyx_v_IMRElementsArray_ = __pyx_t_2;
4705 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_IMRElementsArray_, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 182, __pyx_L1_error)
4714 __pyx_f_6mprans_13MeshSmoothing_cyUpdateInverseMeanRatioTriangleElements(__pyx_t_6, __pyx_v_nodeArray, __pyx_v_elementNodesArray, __pyx_v_nElements);
4715 __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
4716 __pyx_t_6.memview = NULL;
4717 __pyx_t_6.data = NULL;
4726 __Pyx_XDECREF(__pyx_r);
4727 __Pyx_INCREF(__pyx_v_IMRElementsArray_);
4728 __pyx_r = __pyx_v_IMRElementsArray_;
4741 __Pyx_XDECREF(__pyx_t_2);
4742 __Pyx_XDECREF(__pyx_t_3);
4743 __Pyx_XDECREF(__pyx_t_4);
4744 __Pyx_XDECREF(__pyx_t_5);
4745 __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
4746 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getInverseMeanRatioTriangleElements", __pyx_clineno, __pyx_lineno, __pyx_filename);
4749 __Pyx_XDECREF(__pyx_v_IMRElementsArray_);
4750 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray, 1);
4751 __PYX_XDEC_MEMVIEW(&__pyx_v_elementNodesArray, 1);
4752 __Pyx_XGIVEREF(__pyx_r);
4753 __Pyx_RefNannyFinishContext();
4766 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_17updateInverseMeanRatioTriangleNodes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
4767 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_17updateInverseMeanRatioTriangleNodes = {
"updateInverseMeanRatioTriangleNodes", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_17updateInverseMeanRatioTriangleNodes, METH_VARARGS|METH_KEYWORDS, 0};
4768 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_17updateInverseMeanRatioTriangleNodes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4769 __Pyx_memviewslice __pyx_v_IMRNodesArray_ = { 0, 0, { 0 }, { 0 }, { 0 } };
4770 __Pyx_memviewslice __pyx_v_nodeArray = { 0, 0, { 0 }, { 0 }, { 0 } };
4771 __Pyx_memviewslice __pyx_v_elementNodesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
4772 __Pyx_memviewslice __pyx_v_nodeElementOffsets = { 0, 0, { 0 }, { 0 }, { 0 } };
4773 __Pyx_memviewslice __pyx_v_nodeElementsArray = { 0, 0, { 0 }, { 0 }, { 0 } };
4775 int __pyx_v_nElements;
4776 bool __pyx_v_el_average;
4777 PyObject *__pyx_r = 0;
4778 __Pyx_RefNannyDeclarations
4779 __Pyx_RefNannySetupContext(
"updateInverseMeanRatioTriangleNodes (wrapper)", 0);
4781 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_IMRNodesArray,&__pyx_n_s_nodeArray_2,&__pyx_n_s_elementNodesArray,&__pyx_n_s_nodeElementOffsets,&__pyx_n_s_nodeElementsArray,&__pyx_n_s_nNodes,&__pyx_n_s_nElements,&__pyx_n_s_el_average,0};
4782 PyObject* values[8] = {0,0,0,0,0,0,0,0};
4783 if (unlikely(__pyx_kwds)) {
4785 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4787 case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
4789 case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4791 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4793 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4795 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4797 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4799 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4801 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4804 default:
goto __pyx_L5_argtuple_error;
4806 kw_args = PyDict_Size(__pyx_kwds);
4809 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_IMRNodesArray)) != 0)) kw_args--;
4810 else goto __pyx_L5_argtuple_error;
4813 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeArray_2)) != 0)) kw_args--;
4815 __Pyx_RaiseArgtupleInvalid(
"updateInverseMeanRatioTriangleNodes", 0, 7, 8, 1); __PYX_ERR(0, 188, __pyx_L3_error)
4819 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementNodesArray)) != 0)) kw_args--;
4821 __Pyx_RaiseArgtupleInvalid(
"updateInverseMeanRatioTriangleNodes", 0, 7, 8, 2); __PYX_ERR(0, 188, __pyx_L3_error)
4825 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementOffsets)) != 0)) kw_args--;
4827 __Pyx_RaiseArgtupleInvalid(
"updateInverseMeanRatioTriangleNodes", 0, 7, 8, 3); __PYX_ERR(0, 188, __pyx_L3_error)
4831 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementsArray)) != 0)) kw_args--;
4833 __Pyx_RaiseArgtupleInvalid(
"updateInverseMeanRatioTriangleNodes", 0, 7, 8, 4); __PYX_ERR(0, 188, __pyx_L3_error)
4837 if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nNodes)) != 0)) kw_args--;
4839 __Pyx_RaiseArgtupleInvalid(
"updateInverseMeanRatioTriangleNodes", 0, 7, 8, 5); __PYX_ERR(0, 188, __pyx_L3_error)
4843 if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nElements)) != 0)) kw_args--;
4845 __Pyx_RaiseArgtupleInvalid(
"updateInverseMeanRatioTriangleNodes", 0, 7, 8, 6); __PYX_ERR(0, 188, __pyx_L3_error)
4850 PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_el_average);
4851 if (value) { values[7] = value; kw_args--; }
4854 if (unlikely(kw_args > 0)) {
4855 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"updateInverseMeanRatioTriangleNodes") < 0)) __PYX_ERR(0, 188, __pyx_L3_error)
4858 switch (PyTuple_GET_SIZE(__pyx_args)) {
4859 case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
4861 case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
4862 values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
4863 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4864 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4865 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4866 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4867 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4869 default:
goto __pyx_L5_argtuple_error;
4872 __pyx_v_IMRNodesArray_ = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_IMRNodesArray_.memview)) __PYX_ERR(0, 188, __pyx_L3_error)
4873 __pyx_v_nodeArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeArray.memview)) __PYX_ERR(0, 189, __pyx_L3_error)
4874 __pyx_v_elementNodesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementNodesArray.memview)) __PYX_ERR(0, 190, __pyx_L3_error)
4875 __pyx_v_nodeElementOffsets = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[3], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementOffsets.memview)) __PYX_ERR(0, 191, __pyx_L3_error)
4876 __pyx_v_nodeElementsArray = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[4], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementsArray.memview)) __PYX_ERR(0, 192, __pyx_L3_error)
4877 __pyx_v_nNodes = __Pyx_PyInt_As_int(values[5]);
if (unlikely((__pyx_v_nNodes == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 193, __pyx_L3_error)
4878 __pyx_v_nElements = __Pyx_PyInt_As_int(values[6]);
if (unlikely((__pyx_v_nElements == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 194, __pyx_L3_error)
4880 __pyx_v_el_average = __Pyx_PyObject_IsTrue(values[7]);
if (unlikely((__pyx_v_el_average == ((
bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 195, __pyx_L3_error)
4890 __pyx_v_el_average = ((bool)0);
4893 goto __pyx_L4_argument_unpacking_done;
4894 __pyx_L5_argtuple_error:;
4895 __Pyx_RaiseArgtupleInvalid(
"updateInverseMeanRatioTriangleNodes", 0, 7, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 188, __pyx_L3_error)
4897 __Pyx_AddTraceback(
"mprans.MeshSmoothing.updateInverseMeanRatioTriangleNodes", __pyx_clineno, __pyx_lineno, __pyx_filename);
4898 __Pyx_RefNannyFinishContext();
4900 __pyx_L4_argument_unpacking_done:;
4901 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_16updateInverseMeanRatioTriangleNodes(__pyx_self, __pyx_v_IMRNodesArray_, __pyx_v_nodeArray, __pyx_v_elementNodesArray, __pyx_v_nodeElementOffsets, __pyx_v_nodeElementsArray, __pyx_v_nNodes, __pyx_v_nElements, __pyx_v_el_average);
4912 __Pyx_RefNannyFinishContext();
4916 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_16updateInverseMeanRatioTriangleNodes(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_IMRNodesArray_, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementNodesArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_nodeElementsArray,
int __pyx_v_nNodes,
int __pyx_v_nElements,
bool __pyx_v_el_average) {
4917 PyObject *__pyx_r = NULL;
4918 __Pyx_RefNannyDeclarations
4919 struct __pyx_opt_args_6mprans_13MeshSmoothing_cyUpdateInverseMeanRatioTriangleNodes __pyx_t_1;
4920 __Pyx_RefNannySetupContext(
"updateInverseMeanRatioTriangleNodes", 0);
4929 __pyx_t_1.__pyx_n = 1;
4930 __pyx_t_1.el_average = __pyx_v_el_average;
4931 __pyx_f_6mprans_13MeshSmoothing_cyUpdateInverseMeanRatioTriangleNodes(__pyx_v_IMRNodesArray_, __pyx_v_nodeArray, __pyx_v_elementNodesArray, __pyx_v_nodeElementOffsets, __pyx_v_nodeElementsArray, __pyx_v_nElements, __pyx_v_nNodes, &__pyx_t_1);
4942 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4943 __PYX_XDEC_MEMVIEW(&__pyx_v_IMRNodesArray_, 1);
4944 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray, 1);
4945 __PYX_XDEC_MEMVIEW(&__pyx_v_elementNodesArray, 1);
4946 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementOffsets, 1);
4947 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementsArray, 1);
4948 __Pyx_XGIVEREF(__pyx_r);
4949 __Pyx_RefNannyFinishContext();
4962 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_19getInverseMeanRatioTriangleNodes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
4963 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_19getInverseMeanRatioTriangleNodes = {
"getInverseMeanRatioTriangleNodes", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_19getInverseMeanRatioTriangleNodes, METH_VARARGS|METH_KEYWORDS, 0};
4964 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_19getInverseMeanRatioTriangleNodes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4965 __Pyx_memviewslice __pyx_v_nodeArray = { 0, 0, { 0 }, { 0 }, { 0 } };
4966 __Pyx_memviewslice __pyx_v_elementNodesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
4967 __Pyx_memviewslice __pyx_v_nodeElementOffsets = { 0, 0, { 0 }, { 0 }, { 0 } };
4968 __Pyx_memviewslice __pyx_v_nodeElementsArray = { 0, 0, { 0 }, { 0 }, { 0 } };
4969 bool __pyx_v_el_average;
4970 PyObject *__pyx_r = 0;
4971 __Pyx_RefNannyDeclarations
4972 __Pyx_RefNannySetupContext(
"getInverseMeanRatioTriangleNodes (wrapper)", 0);
4974 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nodeArray_2,&__pyx_n_s_elementNodesArray,&__pyx_n_s_nodeElementOffsets,&__pyx_n_s_nodeElementsArray,&__pyx_n_s_el_average,0};
4975 PyObject* values[5] = {0,0,0,0,0};
4976 if (unlikely(__pyx_kwds)) {
4978 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
4980 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
4982 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
4984 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
4986 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
4988 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
4991 default:
goto __pyx_L5_argtuple_error;
4993 kw_args = PyDict_Size(__pyx_kwds);
4996 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeArray_2)) != 0)) kw_args--;
4997 else goto __pyx_L5_argtuple_error;
5000 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementNodesArray)) != 0)) kw_args--;
5002 __Pyx_RaiseArgtupleInvalid(
"getInverseMeanRatioTriangleNodes", 0, 4, 5, 1); __PYX_ERR(0, 205, __pyx_L3_error)
5006 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementOffsets)) != 0)) kw_args--;
5008 __Pyx_RaiseArgtupleInvalid(
"getInverseMeanRatioTriangleNodes", 0, 4, 5, 2); __PYX_ERR(0, 205, __pyx_L3_error)
5012 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementsArray)) != 0)) kw_args--;
5014 __Pyx_RaiseArgtupleInvalid(
"getInverseMeanRatioTriangleNodes", 0, 4, 5, 3); __PYX_ERR(0, 205, __pyx_L3_error)
5019 PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_el_average);
5020 if (value) { values[4] = value; kw_args--; }
5023 if (unlikely(kw_args > 0)) {
5024 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"getInverseMeanRatioTriangleNodes") < 0)) __PYX_ERR(0, 205, __pyx_L3_error)
5027 switch (PyTuple_GET_SIZE(__pyx_args)) {
5028 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5030 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5031 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5032 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5033 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5035 default:
goto __pyx_L5_argtuple_error;
5038 __pyx_v_nodeArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeArray.memview)) __PYX_ERR(0, 205, __pyx_L3_error)
5039 __pyx_v_elementNodesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementNodesArray.memview)) __PYX_ERR(0, 206, __pyx_L3_error)
5040 __pyx_v_nodeElementOffsets = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementOffsets.memview)) __PYX_ERR(0, 207, __pyx_L3_error)
5041 __pyx_v_nodeElementsArray = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[3], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementsArray.memview)) __PYX_ERR(0, 208, __pyx_L3_error)
5043 __pyx_v_el_average = __Pyx_PyObject_IsTrue(values[4]);
if (unlikely((__pyx_v_el_average == ((
bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 209, __pyx_L3_error)
5053 __pyx_v_el_average = ((bool)0);
5056 goto __pyx_L4_argument_unpacking_done;
5057 __pyx_L5_argtuple_error:;
5058 __Pyx_RaiseArgtupleInvalid(
"getInverseMeanRatioTriangleNodes", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 205, __pyx_L3_error)
5060 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getInverseMeanRatioTriangleNodes", __pyx_clineno, __pyx_lineno, __pyx_filename);
5061 __Pyx_RefNannyFinishContext();
5063 __pyx_L4_argument_unpacking_done:;
5064 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_18getInverseMeanRatioTriangleNodes(__pyx_self, __pyx_v_nodeArray, __pyx_v_elementNodesArray, __pyx_v_nodeElementOffsets, __pyx_v_nodeElementsArray, __pyx_v_el_average);
5075 __Pyx_RefNannyFinishContext();
5079 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_18getInverseMeanRatioTriangleNodes(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementNodesArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_nodeElementsArray,
bool __pyx_v_el_average) {
5081 int __pyx_v_nElements;
5082 PyObject *__pyx_v_IMRNodesArray_ = NULL;
5083 PyObject *__pyx_r = NULL;
5084 __Pyx_RefNannyDeclarations
5086 PyObject *__pyx_t_2 = NULL;
5087 PyObject *__pyx_t_3 = NULL;
5088 PyObject *__pyx_t_4 = NULL;
5089 PyObject *__pyx_t_5 = NULL;
5090 __Pyx_memviewslice __pyx_t_6 = { 0, 0, { 0 }, { 0 }, { 0 } };
5091 struct __pyx_opt_args_6mprans_13MeshSmoothing_cyUpdateInverseMeanRatioTriangleNodes __pyx_t_7;
5092 __Pyx_RefNannySetupContext(
"getInverseMeanRatioTriangleNodes", 0);
5101 __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_nodeArray);
5102 __pyx_v_nNodes = __pyx_t_1;
5111 __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_elementNodesArray);
5112 __pyx_v_nElements = __pyx_t_1;
5121 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 212, __pyx_L1_error)
5122 __Pyx_GOTREF(__pyx_t_3);
5123 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 212, __pyx_L1_error)
5124 __Pyx_GOTREF(__pyx_t_4);
5125 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5126 __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nNodes);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 212, __pyx_L1_error)
5127 __Pyx_GOTREF(__pyx_t_3);
5129 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
5130 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
5131 if (likely(__pyx_t_5)) {
5132 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_4);
5133 __Pyx_INCREF(__pyx_t_5);
5134 __Pyx_INCREF(
function);
5135 __Pyx_DECREF_SET(__pyx_t_4,
function);
5138 __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3);
5139 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
5140 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5141 if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 212, __pyx_L1_error)
5142 __Pyx_GOTREF(__pyx_t_2);
5143 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
5144 __pyx_v_IMRNodesArray_ = __pyx_t_2;
5154 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_IMRNodesArray_, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 213, __pyx_L1_error)
5163 __pyx_t_7.__pyx_n = 1;
5164 __pyx_t_7.el_average = __pyx_v_el_average;
5165 __pyx_f_6mprans_13MeshSmoothing_cyUpdateInverseMeanRatioTriangleNodes(__pyx_t_6, __pyx_v_nodeArray, __pyx_v_elementNodesArray, __pyx_v_nodeElementOffsets, __pyx_v_nodeElementsArray, __pyx_v_nElements, __pyx_v_nNodes, &__pyx_t_7);
5166 __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
5167 __pyx_t_6.memview = NULL;
5168 __pyx_t_6.data = NULL;
5177 __Pyx_XDECREF(__pyx_r);
5178 __Pyx_INCREF(__pyx_v_IMRNodesArray_);
5179 __pyx_r = __pyx_v_IMRNodesArray_;
5192 __Pyx_XDECREF(__pyx_t_2);
5193 __Pyx_XDECREF(__pyx_t_3);
5194 __Pyx_XDECREF(__pyx_t_4);
5195 __Pyx_XDECREF(__pyx_t_5);
5196 __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
5197 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getInverseMeanRatioTriangleNodes", __pyx_clineno, __pyx_lineno, __pyx_filename);
5200 __Pyx_XDECREF(__pyx_v_IMRNodesArray_);
5201 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray, 1);
5202 __PYX_XDEC_MEMVIEW(&__pyx_v_elementNodesArray, 1);
5203 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementOffsets, 1);
5204 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementsArray, 1);
5205 __Pyx_XGIVEREF(__pyx_r);
5206 __Pyx_RefNannyFinishContext();
5219 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_21getInverseMeanRatioSingleTriangle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
5220 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_21getInverseMeanRatioSingleTriangle = {
"getInverseMeanRatioSingleTriangle", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_21getInverseMeanRatioSingleTriangle, METH_VARARGS|METH_KEYWORDS, 0};
5221 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_21getInverseMeanRatioSingleTriangle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5223 __Pyx_memviewslice __pyx_v_nodeArray = { 0, 0, { 0 }, { 0 }, { 0 } };
5224 __Pyx_memviewslice __pyx_v_elementNodesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
5225 __Pyx_memviewslice __pyx_v_nodeElementOffsets = { 0, 0, { 0 }, { 0 }, { 0 } };
5226 __Pyx_memviewslice __pyx_v_nodeElementsArray = { 0, 0, { 0 }, { 0 }, { 0 } };
5227 PyObject *__pyx_r = 0;
5228 __Pyx_RefNannyDeclarations
5229 __Pyx_RefNannySetupContext(
"getInverseMeanRatioSingleTriangle (wrapper)", 0);
5231 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_node0,&__pyx_n_s_nodeArray_2,&__pyx_n_s_elementNodesArray,&__pyx_n_s_nodeElementOffsets,&__pyx_n_s_nodeElementsArray,0};
5232 PyObject* values[5] = {0,0,0,0,0};
5233 if (unlikely(__pyx_kwds)) {
5235 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5237 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5239 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5241 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5243 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5245 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5248 default:
goto __pyx_L5_argtuple_error;
5250 kw_args = PyDict_Size(__pyx_kwds);
5253 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node0)) != 0)) kw_args--;
5254 else goto __pyx_L5_argtuple_error;
5257 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeArray_2)) != 0)) kw_args--;
5259 __Pyx_RaiseArgtupleInvalid(
"getInverseMeanRatioSingleTriangle", 1, 5, 5, 1); __PYX_ERR(0, 223, __pyx_L3_error)
5263 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementNodesArray)) != 0)) kw_args--;
5265 __Pyx_RaiseArgtupleInvalid(
"getInverseMeanRatioSingleTriangle", 1, 5, 5, 2); __PYX_ERR(0, 223, __pyx_L3_error)
5269 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementOffsets)) != 0)) kw_args--;
5271 __Pyx_RaiseArgtupleInvalid(
"getInverseMeanRatioSingleTriangle", 1, 5, 5, 3); __PYX_ERR(0, 223, __pyx_L3_error)
5275 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementsArray)) != 0)) kw_args--;
5277 __Pyx_RaiseArgtupleInvalid(
"getInverseMeanRatioSingleTriangle", 1, 5, 5, 4); __PYX_ERR(0, 223, __pyx_L3_error)
5280 if (unlikely(kw_args > 0)) {
5281 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"getInverseMeanRatioSingleTriangle") < 0)) __PYX_ERR(0, 223, __pyx_L3_error)
5283 }
else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
5284 goto __pyx_L5_argtuple_error;
5286 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5287 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5288 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5289 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5290 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5292 __pyx_v_node0 = __Pyx_PyInt_As_int(values[0]);
if (unlikely((__pyx_v_node0 == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 223, __pyx_L3_error)
5293 __pyx_v_nodeArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeArray.memview)) __PYX_ERR(0, 224, __pyx_L3_error)
5294 __pyx_v_elementNodesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementNodesArray.memview)) __PYX_ERR(0, 225, __pyx_L3_error)
5295 __pyx_v_nodeElementOffsets = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[3], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementOffsets.memview)) __PYX_ERR(0, 226, __pyx_L3_error)
5296 __pyx_v_nodeElementsArray = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[4], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementsArray.memview)) __PYX_ERR(0, 227, __pyx_L3_error)
5298 goto __pyx_L4_argument_unpacking_done;
5299 __pyx_L5_argtuple_error:;
5300 __Pyx_RaiseArgtupleInvalid(
"getInverseMeanRatioSingleTriangle", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 223, __pyx_L3_error)
5302 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getInverseMeanRatioSingleTriangle", __pyx_clineno, __pyx_lineno, __pyx_filename);
5303 __Pyx_RefNannyFinishContext();
5305 __pyx_L4_argument_unpacking_done:;
5306 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_20getInverseMeanRatioSingleTriangle(__pyx_self, __pyx_v_node0, __pyx_v_nodeArray, __pyx_v_elementNodesArray, __pyx_v_nodeElementOffsets, __pyx_v_nodeElementsArray);
5309 __Pyx_RefNannyFinishContext();
5313 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_20getInverseMeanRatioSingleTriangle(CYTHON_UNUSED PyObject *__pyx_self,
int __pyx_v_node0, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementNodesArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_nodeElementsArray) {
5314 PyObject *__pyx_r = NULL;
5315 __Pyx_RefNannyDeclarations
5316 PyObject *__pyx_t_1 = NULL;
5317 __Pyx_RefNannySetupContext(
"getInverseMeanRatioSingleTriangle", 0);
5326 __Pyx_XDECREF(__pyx_r);
5335 __pyx_t_1 = PyFloat_FromDouble(__pyx_f_6mprans_13MeshSmoothing_cyGetInverseMeanRatioSingleTriangle(__pyx_v_node0, __pyx_v_nodeArray, __pyx_v_elementNodesArray, __pyx_v_nodeElementOffsets, __pyx_v_nodeElementsArray, NULL));
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 228, __pyx_L1_error)
5336 __Pyx_GOTREF(__pyx_t_1);
5337 __pyx_r = __pyx_t_1;
5351 __Pyx_XDECREF(__pyx_t_1);
5352 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getInverseMeanRatioSingleTriangle", __pyx_clineno, __pyx_lineno, __pyx_filename);
5355 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray, 1);
5356 __PYX_XDEC_MEMVIEW(&__pyx_v_elementNodesArray, 1);
5357 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementOffsets, 1);
5358 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementsArray, 1);
5359 __Pyx_XGIVEREF(__pyx_r);
5360 __Pyx_RefNannyFinishContext();
5373 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_23smoothNodesQuality(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
5374 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_23smoothNodesQuality = {
"smoothNodesQuality", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_23smoothNodesQuality, METH_VARARGS|METH_KEYWORDS, 0};
5375 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_23smoothNodesQuality(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5376 __Pyx_memviewslice __pyx_v_distortion = { 0, 0, { 0 }, { 0 }, { 0 } };
5377 __Pyx_memviewslice __pyx_v_dilation = { 0, 0, { 0 }, { 0 }, { 0 } };
5378 __Pyx_memviewslice __pyx_v_nodeArray = { 0, 0, { 0 }, { 0 }, { 0 } };
5379 int __pyx_v_nNodes_owned;
5380 __Pyx_memviewslice __pyx_v_nodeMaterialTypes = { 0, 0, { 0 }, { 0 }, { 0 } };
5381 __Pyx_memviewslice __pyx_v_nodeElementOffsets = { 0, 0, { 0 }, { 0 }, { 0 } };
5382 __Pyx_memviewslice __pyx_v_nodeElementsArray = { 0, 0, { 0 }, { 0 }, { 0 } };
5383 __Pyx_memviewslice __pyx_v_elementNodesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
5384 CYTHON_UNUSED
bool __pyx_v_apply_directly;
5385 PyObject *__pyx_r = 0;
5386 __Pyx_RefNannyDeclarations
5387 __Pyx_RefNannySetupContext(
"smoothNodesQuality (wrapper)", 0);
5389 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_distortion,&__pyx_n_s_dilation,&__pyx_n_s_nodeArray_2,&__pyx_n_s_nNodes_owned,&__pyx_n_s_nodeMaterialTypes,&__pyx_n_s_nodeElementOffsets,&__pyx_n_s_nodeElementsArray,&__pyx_n_s_elementNodesArray,&__pyx_n_s_apply_directly,0};
5390 PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
5391 if (unlikely(__pyx_kwds)) {
5393 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5395 case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
5397 case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5399 case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5401 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5403 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5405 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5407 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5409 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5411 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5414 default:
goto __pyx_L5_argtuple_error;
5416 kw_args = PyDict_Size(__pyx_kwds);
5419 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_distortion)) != 0)) kw_args--;
5420 else goto __pyx_L5_argtuple_error;
5423 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dilation)) != 0)) kw_args--;
5425 __Pyx_RaiseArgtupleInvalid(
"smoothNodesQuality", 0, 8, 9, 1); __PYX_ERR(0, 234, __pyx_L3_error)
5429 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeArray_2)) != 0)) kw_args--;
5431 __Pyx_RaiseArgtupleInvalid(
"smoothNodesQuality", 0, 8, 9, 2); __PYX_ERR(0, 234, __pyx_L3_error)
5435 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nNodes_owned)) != 0)) kw_args--;
5437 __Pyx_RaiseArgtupleInvalid(
"smoothNodesQuality", 0, 8, 9, 3); __PYX_ERR(0, 234, __pyx_L3_error)
5441 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeMaterialTypes)) != 0)) kw_args--;
5443 __Pyx_RaiseArgtupleInvalid(
"smoothNodesQuality", 0, 8, 9, 4); __PYX_ERR(0, 234, __pyx_L3_error)
5447 if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementOffsets)) != 0)) kw_args--;
5449 __Pyx_RaiseArgtupleInvalid(
"smoothNodesQuality", 0, 8, 9, 5); __PYX_ERR(0, 234, __pyx_L3_error)
5453 if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementsArray)) != 0)) kw_args--;
5455 __Pyx_RaiseArgtupleInvalid(
"smoothNodesQuality", 0, 8, 9, 6); __PYX_ERR(0, 234, __pyx_L3_error)
5459 if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementNodesArray)) != 0)) kw_args--;
5461 __Pyx_RaiseArgtupleInvalid(
"smoothNodesQuality", 0, 8, 9, 7); __PYX_ERR(0, 234, __pyx_L3_error)
5466 PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_apply_directly);
5467 if (value) { values[8] = value; kw_args--; }
5470 if (unlikely(kw_args > 0)) {
5471 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"smoothNodesQuality") < 0)) __PYX_ERR(0, 234, __pyx_L3_error)
5474 switch (PyTuple_GET_SIZE(__pyx_args)) {
5475 case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
5477 case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
5478 values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
5479 values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
5480 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5481 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5482 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5483 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5484 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5486 default:
goto __pyx_L5_argtuple_error;
5489 __pyx_v_distortion = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_distortion.memview)) __PYX_ERR(0, 234, __pyx_L3_error)
5490 __pyx_v_dilation = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_dilation.memview)) __PYX_ERR(0, 235, __pyx_L3_error)
5491 __pyx_v_nodeArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeArray.memview)) __PYX_ERR(0, 236, __pyx_L3_error)
5492 __pyx_v_nNodes_owned = __Pyx_PyInt_As_int(values[3]);
if (unlikely((__pyx_v_nNodes_owned == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 237, __pyx_L3_error)
5493 __pyx_v_nodeMaterialTypes = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[4], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeMaterialTypes.memview)) __PYX_ERR(0, 238, __pyx_L3_error)
5494 __pyx_v_nodeElementOffsets = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[5], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementOffsets.memview)) __PYX_ERR(0, 239, __pyx_L3_error)
5495 __pyx_v_nodeElementsArray = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[6], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementsArray.memview)) __PYX_ERR(0, 240, __pyx_L3_error)
5496 __pyx_v_elementNodesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[7], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementNodesArray.memview)) __PYX_ERR(0, 241, __pyx_L3_error)
5498 __pyx_v_apply_directly = __Pyx_PyObject_IsTrue(values[8]);
if (unlikely((__pyx_v_apply_directly == ((
bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 242, __pyx_L3_error)
5508 __pyx_v_apply_directly = ((bool)0);
5511 goto __pyx_L4_argument_unpacking_done;
5512 __pyx_L5_argtuple_error:;
5513 __Pyx_RaiseArgtupleInvalid(
"smoothNodesQuality", 0, 8, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 234, __pyx_L3_error)
5515 __Pyx_AddTraceback(
"mprans.MeshSmoothing.smoothNodesQuality", __pyx_clineno, __pyx_lineno, __pyx_filename);
5516 __Pyx_RefNannyFinishContext();
5518 __pyx_L4_argument_unpacking_done:;
5519 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_22smoothNodesQuality(__pyx_self, __pyx_v_distortion, __pyx_v_dilation, __pyx_v_nodeArray, __pyx_v_nNodes_owned, __pyx_v_nodeMaterialTypes, __pyx_v_nodeElementOffsets, __pyx_v_nodeElementsArray, __pyx_v_elementNodesArray, __pyx_v_apply_directly);
5530 __Pyx_RefNannyFinishContext();
5534 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_22smoothNodesQuality(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_distortion, __Pyx_memviewslice __pyx_v_dilation, __Pyx_memviewslice __pyx_v_nodeArray,
int __pyx_v_nNodes_owned, __Pyx_memviewslice __pyx_v_nodeMaterialTypes, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_elementNodesArray, CYTHON_UNUSED
bool __pyx_v_apply_directly) {
5535 PyObject *__pyx_r = NULL;
5536 __Pyx_RefNannyDeclarations
5537 __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
5538 struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesQuality __pyx_t_2;
5539 PyObject *__pyx_t_3 = NULL;
5540 __Pyx_RefNannySetupContext(
"smoothNodesQuality", 0);
5549 #ifndef CYTHON_WITHOUT_ASSERTIONS 5550 if (unlikely(!Py_OptimizeFlag)) {
5552 PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_smoothNodesQuality_is_work_in_pr);
5553 __PYX_ERR(0, 243, __pyx_L1_error)
5565 __Pyx_XDECREF(__pyx_r);
5574 __pyx_t_2.__pyx_n = 1;
5575 __pyx_t_2.apply_directly = 0;
5576 __pyx_t_1 = __pyx_f_6mprans_13MeshSmoothing_cySmoothNodesQuality(__pyx_v_distortion, __pyx_v_dilation, __pyx_v_nodeArray, __pyx_v_nNodes_owned, __pyx_v_nodeMaterialTypes, __pyx_v_nodeElementOffsets, __pyx_v_nodeElementsArray, __pyx_v_elementNodesArray, &__pyx_t_2);
if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 244, __pyx_L1_error)
5585 __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_t_1, 2, (PyObject *(*)(
char *)) __pyx_memview_get_double, (
int (*)(
char *, PyObject *)) __pyx_memview_set_double, 0);;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 244, __pyx_L1_error)
5586 __Pyx_GOTREF(__pyx_t_3);
5587 __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
5588 __pyx_t_1.memview = NULL;
5589 __pyx_t_1.data = NULL;
5590 __pyx_r = __pyx_t_3;
5604 __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
5605 __Pyx_XDECREF(__pyx_t_3);
5606 __Pyx_AddTraceback(
"mprans.MeshSmoothing.smoothNodesQuality", __pyx_clineno, __pyx_lineno, __pyx_filename);
5609 __PYX_XDEC_MEMVIEW(&__pyx_v_distortion, 1);
5610 __PYX_XDEC_MEMVIEW(&__pyx_v_dilation, 1);
5611 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray, 1);
5612 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeMaterialTypes, 1);
5613 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementOffsets, 1);
5614 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementsArray, 1);
5615 __PYX_XDEC_MEMVIEW(&__pyx_v_elementNodesArray, 1);
5616 __Pyx_XGIVEREF(__pyx_r);
5617 __Pyx_RefNannyFinishContext();
5630 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_25getLocalNearestNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
5631 static char __pyx_doc_6mprans_13MeshSmoothing_24getLocalNearestNode[] =
"Finds nearest node to coordinates (local)\n\n Parameters\n ----------\n coords: array_like\n coordinates from which to find nearest node\n nodeArray: array_like\n array of fluid mesh node coordinates\n nodeStarOffsets: array_like\n array of offsets from nodes (range)\n nodeStarArray: array_like\n array of neighbouring nodes\n node: int\n first guess for nearest node\n\n Returns\n -------\n node: int\n nearest node index\n ";
5632 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_25getLocalNearestNode = {
"getLocalNearestNode", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_25getLocalNearestNode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_13MeshSmoothing_24getLocalNearestNode};
5633 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_25getLocalNearestNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5634 __Pyx_memviewslice __pyx_v_coords = { 0, 0, { 0 }, { 0 }, { 0 } };
5635 __Pyx_memviewslice __pyx_v_nodeArray = { 0, 0, { 0 }, { 0 }, { 0 } };
5636 __Pyx_memviewslice __pyx_v_nodeStarOffsets = { 0, 0, { 0 }, { 0 }, { 0 } };
5637 __Pyx_memviewslice __pyx_v_nodeStarArray = { 0, 0, { 0 }, { 0 }, { 0 } };
5639 PyObject *__pyx_r = 0;
5640 __Pyx_RefNannyDeclarations
5641 __Pyx_RefNannySetupContext(
"getLocalNearestNode (wrapper)", 0);
5643 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_coords,&__pyx_n_s_nodeArray_2,&__pyx_n_s_nodeStarOffsets,&__pyx_n_s_nodeStarArray,&__pyx_n_s_node,0};
5644 PyObject* values[5] = {0,0,0,0,0};
5645 if (unlikely(__pyx_kwds)) {
5647 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5649 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5651 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5653 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5655 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5657 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5660 default:
goto __pyx_L5_argtuple_error;
5662 kw_args = PyDict_Size(__pyx_kwds);
5665 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coords)) != 0)) kw_args--;
5666 else goto __pyx_L5_argtuple_error;
5669 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeArray_2)) != 0)) kw_args--;
5671 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestNode", 1, 5, 5, 1); __PYX_ERR(0, 254, __pyx_L3_error)
5675 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeStarOffsets)) != 0)) kw_args--;
5677 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestNode", 1, 5, 5, 2); __PYX_ERR(0, 254, __pyx_L3_error)
5681 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeStarArray)) != 0)) kw_args--;
5683 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestNode", 1, 5, 5, 3); __PYX_ERR(0, 254, __pyx_L3_error)
5687 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
5689 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestNode", 1, 5, 5, 4); __PYX_ERR(0, 254, __pyx_L3_error)
5692 if (unlikely(kw_args > 0)) {
5693 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"getLocalNearestNode") < 0)) __PYX_ERR(0, 254, __pyx_L3_error)
5695 }
else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
5696 goto __pyx_L5_argtuple_error;
5698 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5699 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5700 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5701 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5702 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5704 __pyx_v_coords = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_coords.memview)) __PYX_ERR(0, 254, __pyx_L3_error)
5705 __pyx_v_nodeArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeArray.memview)) __PYX_ERR(0, 255, __pyx_L3_error)
5706 __pyx_v_nodeStarOffsets = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeStarOffsets.memview)) __PYX_ERR(0, 256, __pyx_L3_error)
5707 __pyx_v_nodeStarArray = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[3], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeStarArray.memview)) __PYX_ERR(0, 257, __pyx_L3_error)
5708 __pyx_v_node = __Pyx_PyInt_As_int(values[4]);
if (unlikely((__pyx_v_node == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 258, __pyx_L3_error)
5710 goto __pyx_L4_argument_unpacking_done;
5711 __pyx_L5_argtuple_error:;
5712 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestNode", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 254, __pyx_L3_error)
5714 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getLocalNearestNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
5715 __Pyx_RefNannyFinishContext();
5717 __pyx_L4_argument_unpacking_done:;
5718 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_24getLocalNearestNode(__pyx_self, __pyx_v_coords, __pyx_v_nodeArray, __pyx_v_nodeStarOffsets, __pyx_v_nodeStarArray, __pyx_v_node);
5721 __Pyx_RefNannyFinishContext();
5725 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_24getLocalNearestNode(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_coords, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_nodeStarOffsets, __Pyx_memviewslice __pyx_v_nodeStarArray,
int __pyx_v_node) {
5726 PyObject *__pyx_r = NULL;
5727 __Pyx_RefNannyDeclarations
5728 PyObject *__pyx_t_1 = NULL;
5729 __Pyx_RefNannySetupContext(
"getLocalNearestNode", 0);
5738 __Pyx_XDECREF(__pyx_r);
5747 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_6mprans_13MeshSmoothing_pyxGetLocalNearestNode(__pyx_v_coords, __pyx_v_nodeArray, __pyx_v_nodeStarOffsets, __pyx_v_nodeStarArray, __pyx_v_node));
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 279, __pyx_L1_error)
5748 __Pyx_GOTREF(__pyx_t_1);
5749 __pyx_r = __pyx_t_1;
5763 __Pyx_XDECREF(__pyx_t_1);
5764 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getLocalNearestNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
5767 __PYX_XDEC_MEMVIEW(&__pyx_v_coords, 1);
5768 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray, 1);
5769 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeStarOffsets, 1);
5770 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeStarArray, 1);
5771 __Pyx_XGIVEREF(__pyx_r);
5772 __Pyx_RefNannyFinishContext();
5785 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_27getLocalNearestElement(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
5786 static char __pyx_doc_6mprans_13MeshSmoothing_26getLocalNearestElement[] =
"Finds nearest element to coordinates (local)\n\n Parameters\n ----------\n coords: double[:]\n coordinates from which to find nearest element\n elementBarycentersArray: double[:,:]\n array of mesh cell barycenter coordinates\n elementNeighborsArray: double[:,:]\n array of element neighbors\n eN: int\n first guess for nearest element\n\n Returns\n -------\n eN: int\n nearest element index\n ";
5787 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_27getLocalNearestElement = {
"getLocalNearestElement", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_27getLocalNearestElement, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_13MeshSmoothing_26getLocalNearestElement};
5788 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_27getLocalNearestElement(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5789 __Pyx_memviewslice __pyx_v_coords = { 0, 0, { 0 }, { 0 }, { 0 } };
5790 __Pyx_memviewslice __pyx_v_elementBarycentersArray = { 0, 0, { 0 }, { 0 }, { 0 } };
5791 __Pyx_memviewslice __pyx_v_elementNeighborsArray = { 0, 0, { 0 }, { 0 }, { 0 } };
5793 PyObject *__pyx_r = 0;
5794 __Pyx_RefNannyDeclarations
5795 __Pyx_RefNannySetupContext(
"getLocalNearestElement (wrapper)", 0);
5797 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_coords,&__pyx_n_s_elementBarycentersArray,&__pyx_n_s_elementNeighborsArray,&__pyx_n_s_eN,0};
5798 PyObject* values[4] = {0,0,0,0};
5799 if (unlikely(__pyx_kwds)) {
5801 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5803 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5805 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5807 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5809 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5812 default:
goto __pyx_L5_argtuple_error;
5814 kw_args = PyDict_Size(__pyx_kwds);
5817 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coords)) != 0)) kw_args--;
5818 else goto __pyx_L5_argtuple_error;
5821 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBarycentersArray)) != 0)) kw_args--;
5823 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestElement", 1, 4, 4, 1); __PYX_ERR(0, 285, __pyx_L3_error)
5827 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementNeighborsArray)) != 0)) kw_args--;
5829 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestElement", 1, 4, 4, 2); __PYX_ERR(0, 285, __pyx_L3_error)
5833 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eN)) != 0)) kw_args--;
5835 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestElement", 1, 4, 4, 3); __PYX_ERR(0, 285, __pyx_L3_error)
5838 if (unlikely(kw_args > 0)) {
5839 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"getLocalNearestElement") < 0)) __PYX_ERR(0, 285, __pyx_L3_error)
5841 }
else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
5842 goto __pyx_L5_argtuple_error;
5844 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5845 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5846 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5847 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5849 __pyx_v_coords = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_coords.memview)) __PYX_ERR(0, 285, __pyx_L3_error)
5850 __pyx_v_elementBarycentersArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBarycentersArray.memview)) __PYX_ERR(0, 286, __pyx_L3_error)
5851 __pyx_v_elementNeighborsArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementNeighborsArray.memview)) __PYX_ERR(0, 287, __pyx_L3_error)
5852 __pyx_v_eN = __Pyx_PyInt_As_int(values[3]);
if (unlikely((__pyx_v_eN == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 288, __pyx_L3_error)
5854 goto __pyx_L4_argument_unpacking_done;
5855 __pyx_L5_argtuple_error:;
5856 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestElement", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 285, __pyx_L3_error)
5858 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getLocalNearestElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
5859 __Pyx_RefNannyFinishContext();
5861 __pyx_L4_argument_unpacking_done:;
5862 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_26getLocalNearestElement(__pyx_self, __pyx_v_coords, __pyx_v_elementBarycentersArray, __pyx_v_elementNeighborsArray, __pyx_v_eN);
5865 __Pyx_RefNannyFinishContext();
5869 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_26getLocalNearestElement(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_coords, __Pyx_memviewslice __pyx_v_elementBarycentersArray, __Pyx_memviewslice __pyx_v_elementNeighborsArray,
int __pyx_v_eN) {
5870 PyObject *__pyx_r = NULL;
5871 __Pyx_RefNannyDeclarations
5872 PyObject *__pyx_t_1 = NULL;
5873 __Pyx_RefNannySetupContext(
"getLocalNearestElement", 0);
5882 __Pyx_XDECREF(__pyx_r);
5891 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_6mprans_13MeshSmoothing_pyxGetLocalNearestElement(__pyx_v_coords, __pyx_v_elementBarycentersArray, __pyx_v_elementNeighborsArray, __pyx_v_eN));
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 307, __pyx_L1_error)
5892 __Pyx_GOTREF(__pyx_t_1);
5893 __pyx_r = __pyx_t_1;
5907 __Pyx_XDECREF(__pyx_t_1);
5908 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getLocalNearestElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
5911 __PYX_XDEC_MEMVIEW(&__pyx_v_coords, 1);
5912 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBarycentersArray, 1);
5913 __PYX_XDEC_MEMVIEW(&__pyx_v_elementNeighborsArray, 1);
5914 __Pyx_XGIVEREF(__pyx_r);
5915 __Pyx_RefNannyFinishContext();
5928 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_29getLocalNearestElementAroundNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
5929 static char __pyx_doc_6mprans_13MeshSmoothing_28getLocalNearestElementAroundNode[] =
"Finds nearest neighbouring element of node to coordinates (local)\n\n Parameters\n ----------\n coords: double[:]\n coordinates from which to find nearest element\n nodeElementOffsets: int[:]\n element offsets from nodes\n nodeElementsArray: int[:]\n elements array from nodeElementOffsets\n elementBarycentersArray: int[:]\n array of mesh cell barycenter coordinates\n node: int\n node from which to search\n\n Returns\n -------\n eN: int\n nearest element index\n ";
5930 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_29getLocalNearestElementAroundNode = {
"getLocalNearestElementAroundNode", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_29getLocalNearestElementAroundNode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_13MeshSmoothing_28getLocalNearestElementAroundNode};
5931 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_29getLocalNearestElementAroundNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5932 __Pyx_memviewslice __pyx_v_coords = { 0, 0, { 0 }, { 0 }, { 0 } };
5933 __Pyx_memviewslice __pyx_v_nodeElementOffsets = { 0, 0, { 0 }, { 0 }, { 0 } };
5934 __Pyx_memviewslice __pyx_v_nodeElementsArray = { 0, 0, { 0 }, { 0 }, { 0 } };
5935 __Pyx_memviewslice __pyx_v_elementBarycentersArray = { 0, 0, { 0 }, { 0 }, { 0 } };
5937 PyObject *__pyx_r = 0;
5938 __Pyx_RefNannyDeclarations
5939 __Pyx_RefNannySetupContext(
"getLocalNearestElementAroundNode (wrapper)", 0);
5941 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_coords,&__pyx_n_s_nodeElementOffsets,&__pyx_n_s_nodeElementsArray,&__pyx_n_s_elementBarycentersArray,&__pyx_n_s_node,0};
5942 PyObject* values[5] = {0,0,0,0,0};
5943 if (unlikely(__pyx_kwds)) {
5945 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
5947 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
5949 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
5951 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5953 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5955 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5958 default:
goto __pyx_L5_argtuple_error;
5960 kw_args = PyDict_Size(__pyx_kwds);
5963 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coords)) != 0)) kw_args--;
5964 else goto __pyx_L5_argtuple_error;
5967 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementOffsets)) != 0)) kw_args--;
5969 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestElementAroundNode", 1, 5, 5, 1); __PYX_ERR(0, 312, __pyx_L3_error)
5973 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementsArray)) != 0)) kw_args--;
5975 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestElementAroundNode", 1, 5, 5, 2); __PYX_ERR(0, 312, __pyx_L3_error)
5979 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBarycentersArray)) != 0)) kw_args--;
5981 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestElementAroundNode", 1, 5, 5, 3); __PYX_ERR(0, 312, __pyx_L3_error)
5985 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
5987 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestElementAroundNode", 1, 5, 5, 4); __PYX_ERR(0, 312, __pyx_L3_error)
5990 if (unlikely(kw_args > 0)) {
5991 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"getLocalNearestElementAroundNode") < 0)) __PYX_ERR(0, 312, __pyx_L3_error)
5993 }
else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
5994 goto __pyx_L5_argtuple_error;
5996 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
5997 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
5998 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
5999 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
6000 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
6002 __pyx_v_coords = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_coords.memview)) __PYX_ERR(0, 312, __pyx_L3_error)
6003 __pyx_v_nodeElementOffsets = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementOffsets.memview)) __PYX_ERR(0, 313, __pyx_L3_error)
6004 __pyx_v_nodeElementsArray = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementsArray.memview)) __PYX_ERR(0, 314, __pyx_L3_error)
6005 __pyx_v_elementBarycentersArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[3], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBarycentersArray.memview)) __PYX_ERR(0, 315, __pyx_L3_error)
6006 __pyx_v_node = __Pyx_PyInt_As_int(values[4]);
if (unlikely((__pyx_v_node == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 316, __pyx_L3_error)
6008 goto __pyx_L4_argument_unpacking_done;
6009 __pyx_L5_argtuple_error:;
6010 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestElementAroundNode", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 312, __pyx_L3_error)
6012 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getLocalNearestElementAroundNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
6013 __Pyx_RefNannyFinishContext();
6015 __pyx_L4_argument_unpacking_done:;
6016 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_28getLocalNearestElementAroundNode(__pyx_self, __pyx_v_coords, __pyx_v_nodeElementOffsets, __pyx_v_nodeElementsArray, __pyx_v_elementBarycentersArray, __pyx_v_node);
6019 __Pyx_RefNannyFinishContext();
6023 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_28getLocalNearestElementAroundNode(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_coords, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_elementBarycentersArray,
int __pyx_v_node) {
6024 PyObject *__pyx_r = NULL;
6025 __Pyx_RefNannyDeclarations
6026 PyObject *__pyx_t_1 = NULL;
6027 __Pyx_RefNannySetupContext(
"getLocalNearestElementAroundNode", 0);
6036 __Pyx_XDECREF(__pyx_r);
6045 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_6mprans_13MeshSmoothing_pyxGetLocalNearestElementAroundNode(__pyx_v_coords, __pyx_v_nodeElementOffsets, __pyx_v_nodeElementsArray, __pyx_v_elementBarycentersArray, __pyx_v_node));
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 337, __pyx_L1_error)
6046 __Pyx_GOTREF(__pyx_t_1);
6047 __pyx_r = __pyx_t_1;
6061 __Pyx_XDECREF(__pyx_t_1);
6062 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getLocalNearestElementAroundNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
6065 __PYX_XDEC_MEMVIEW(&__pyx_v_coords, 1);
6066 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementOffsets, 1);
6067 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementsArray, 1);
6068 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBarycentersArray, 1);
6069 __Pyx_XGIVEREF(__pyx_r);
6070 __Pyx_RefNannyFinishContext();
6083 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_31getLocalNearestElementIntersection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
6084 static char __pyx_doc_6mprans_13MeshSmoothing_30getLocalNearestElementIntersection[] =
"Find element nearest or containing coords through element boundary intersection\n\n Parameters\n ----------\n coords: double[:]\n coordinates of point for which a containing element must be found\n starting_coords: double[:]\n starting coords to look for coords\n elementBoundaryNormals: double[:,:,:]\n normals of the element boundaries\n elementBoundariesArray: int[:,:]\n index of boundaries per elements\n elementBoundaryBarycentersArray: int[:,:]\n barycenters of element boundaries\n elementBoundaryElementsArray: int[:,:]\n array of elements shared by boundaries\n exteriorElementBoundariesBoolArray: int[:]\n boolean array of exterior element boundaries (1: is exterior boundary)\n must be same length as the number of element boundaries\n eN: first guess of element\n\n Returns\n -------\n nearest_eN: int\n nearest element to coords (-1 if element at border)\n b_i_last: int\n last element boundary crossed\n ";
6085 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_31getLocalNearestElementIntersection = {
"getLocalNearestElementIntersection", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_31getLocalNearestElementIntersection, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_13MeshSmoothing_30getLocalNearestElementIntersection};
6086 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_31getLocalNearestElementIntersection(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6087 __Pyx_memviewslice __pyx_v_coords = { 0, 0, { 0 }, { 0 }, { 0 } };
6088 __Pyx_memviewslice __pyx_v_starting_coords = { 0, 0, { 0 }, { 0 }, { 0 } };
6089 __Pyx_memviewslice __pyx_v_elementBoundaryNormalsArray = { 0, 0, { 0 }, { 0 }, { 0 } };
6090 __Pyx_memviewslice __pyx_v_elementBoundariesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
6091 __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray = { 0, 0, { 0 }, { 0 }, { 0 } };
6092 __Pyx_memviewslice __pyx_v_elementBoundaryElementsArray = { 0, 0, { 0 }, { 0 }, { 0 } };
6093 __Pyx_memviewslice __pyx_v_exteriorElementBoundariesBoolArray = { 0, 0, { 0 }, { 0 }, { 0 } };
6095 PyObject *__pyx_r = 0;
6096 __Pyx_RefNannyDeclarations
6097 __Pyx_RefNannySetupContext(
"getLocalNearestElementIntersection (wrapper)", 0);
6099 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_coords,&__pyx_n_s_starting_coords,&__pyx_n_s_elementBoundaryNormalsArray,&__pyx_n_s_elementBoundariesArray,&__pyx_n_s_elementBoundaryBarycentersArray,&__pyx_n_s_elementBoundaryElementsArray,&__pyx_n_s_exteriorElementBoundariesBoolArr,&__pyx_n_s_eN,0};
6100 PyObject* values[8] = {0,0,0,0,0,0,0,0};
6101 if (unlikely(__pyx_kwds)) {
6103 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
6105 case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
6107 case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
6109 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
6111 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
6113 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
6115 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6117 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6119 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6122 default:
goto __pyx_L5_argtuple_error;
6124 kw_args = PyDict_Size(__pyx_kwds);
6127 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coords)) != 0)) kw_args--;
6128 else goto __pyx_L5_argtuple_error;
6131 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_starting_coords)) != 0)) kw_args--;
6133 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestElementIntersection", 1, 8, 8, 1); __PYX_ERR(0, 343, __pyx_L3_error)
6137 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryNormalsArray)) != 0)) kw_args--;
6139 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestElementIntersection", 1, 8, 8, 2); __PYX_ERR(0, 343, __pyx_L3_error)
6143 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundariesArray)) != 0)) kw_args--;
6145 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestElementIntersection", 1, 8, 8, 3); __PYX_ERR(0, 343, __pyx_L3_error)
6149 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryBarycentersArray)) != 0)) kw_args--;
6151 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestElementIntersection", 1, 8, 8, 4); __PYX_ERR(0, 343, __pyx_L3_error)
6155 if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryElementsArray)) != 0)) kw_args--;
6157 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestElementIntersection", 1, 8, 8, 5); __PYX_ERR(0, 343, __pyx_L3_error)
6161 if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exteriorElementBoundariesBoolArr)) != 0)) kw_args--;
6163 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestElementIntersection", 1, 8, 8, 6); __PYX_ERR(0, 343, __pyx_L3_error)
6167 if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eN)) != 0)) kw_args--;
6169 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestElementIntersection", 1, 8, 8, 7); __PYX_ERR(0, 343, __pyx_L3_error)
6172 if (unlikely(kw_args > 0)) {
6173 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"getLocalNearestElementIntersection") < 0)) __PYX_ERR(0, 343, __pyx_L3_error)
6175 }
else if (PyTuple_GET_SIZE(__pyx_args) != 8) {
6176 goto __pyx_L5_argtuple_error;
6178 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6179 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6180 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6181 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
6182 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
6183 values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
6184 values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
6185 values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
6187 __pyx_v_coords = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_coords.memview)) __PYX_ERR(0, 343, __pyx_L3_error)
6188 __pyx_v_starting_coords = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_starting_coords.memview)) __PYX_ERR(0, 344, __pyx_L3_error)
6189 __pyx_v_elementBoundaryNormalsArray = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_double(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundaryNormalsArray.memview)) __PYX_ERR(0, 345, __pyx_L3_error)
6190 __pyx_v_elementBoundariesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[3], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundariesArray.memview)) __PYX_ERR(0, 346, __pyx_L3_error)
6191 __pyx_v_elementBoundaryBarycentersArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[4], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundaryBarycentersArray.memview)) __PYX_ERR(0, 347, __pyx_L3_error)
6192 __pyx_v_elementBoundaryElementsArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[5], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundaryElementsArray.memview)) __PYX_ERR(0, 348, __pyx_L3_error)
6193 __pyx_v_exteriorElementBoundariesBoolArray = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[6], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_exteriorElementBoundariesBoolArray.memview)) __PYX_ERR(0, 349, __pyx_L3_error)
6194 __pyx_v_eN = __Pyx_PyInt_As_int(values[7]);
if (unlikely((__pyx_v_eN == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 350, __pyx_L3_error)
6196 goto __pyx_L4_argument_unpacking_done;
6197 __pyx_L5_argtuple_error:;
6198 __Pyx_RaiseArgtupleInvalid(
"getLocalNearestElementIntersection", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 343, __pyx_L3_error)
6200 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getLocalNearestElementIntersection", __pyx_clineno, __pyx_lineno, __pyx_filename);
6201 __Pyx_RefNannyFinishContext();
6203 __pyx_L4_argument_unpacking_done:;
6204 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_30getLocalNearestElementIntersection(__pyx_self, __pyx_v_coords, __pyx_v_starting_coords, __pyx_v_elementBoundaryNormalsArray, __pyx_v_elementBoundariesArray, __pyx_v_elementBoundaryBarycentersArray, __pyx_v_elementBoundaryElementsArray, __pyx_v_exteriorElementBoundariesBoolArray, __pyx_v_eN);
6207 __Pyx_RefNannyFinishContext();
6211 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_30getLocalNearestElementIntersection(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_coords, __Pyx_memviewslice __pyx_v_starting_coords, __Pyx_memviewslice __pyx_v_elementBoundaryNormalsArray, __Pyx_memviewslice __pyx_v_elementBoundariesArray, __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray, __Pyx_memviewslice __pyx_v_elementBoundaryElementsArray, __Pyx_memviewslice __pyx_v_exteriorElementBoundariesBoolArray,
int __pyx_v_eN) {
6212 PyObject *__pyx_r = NULL;
6213 __Pyx_RefNannyDeclarations
6214 __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
6215 PyObject *__pyx_t_2 = NULL;
6216 __Pyx_RefNannySetupContext(
"getLocalNearestElementIntersection", 0);
6225 __Pyx_XDECREF(__pyx_r);
6234 __pyx_t_1 = __pyx_f_6mprans_13MeshSmoothing_pyxGetLocalNearestElementIntersection(__pyx_v_coords, __pyx_v_starting_coords, __pyx_v_elementBoundaryNormalsArray, __pyx_v_elementBoundariesArray, __pyx_v_elementBoundaryBarycentersArray, __pyx_v_elementBoundaryElementsArray, __pyx_v_exteriorElementBoundariesBoolArray, __pyx_v_eN);
if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 379, __pyx_L1_error)
6243 __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_t_1, 1, (PyObject *(*)(
char *)) __pyx_memview_get_int, (
int (*)(
char *, PyObject *)) __pyx_memview_set_int, 0);;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 379, __pyx_L1_error)
6244 __Pyx_GOTREF(__pyx_t_2);
6245 __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
6246 __pyx_t_1.memview = NULL;
6247 __pyx_t_1.data = NULL;
6248 __pyx_r = __pyx_t_2;
6262 __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
6263 __Pyx_XDECREF(__pyx_t_2);
6264 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getLocalNearestElementIntersection", __pyx_clineno, __pyx_lineno, __pyx_filename);
6267 __PYX_XDEC_MEMVIEW(&__pyx_v_coords, 1);
6268 __PYX_XDEC_MEMVIEW(&__pyx_v_starting_coords, 1);
6269 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundaryNormalsArray, 1);
6270 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundariesArray, 1);
6271 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundaryBarycentersArray, 1);
6272 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundaryElementsArray, 1);
6273 __PYX_XDEC_MEMVIEW(&__pyx_v_exteriorElementBoundariesBoolArray, 1);
6274 __Pyx_XGIVEREF(__pyx_r);
6275 __Pyx_RefNannyFinishContext();
6288 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_33getLocalElement(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
6289 static char __pyx_doc_6mprans_13MeshSmoothing_32getLocalElement[] =
"Given coordinates and its nearest node, determine if it is on a\n local element.\n (!) old implementation -> slow\n\n Parameters\n ----------\n femSpace: object\n finite element space\n coords: array_like\n coordinates from which to element\n node: int\n nearest node index\n\n Returns\n -------\n eN: int or None\n local index of element (None if not found)\n ";
6290 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_33getLocalElement = {
"getLocalElement", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_33getLocalElement, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6mprans_13MeshSmoothing_32getLocalElement};
6291 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_33getLocalElement(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6292 PyObject *__pyx_v_femSpace = 0;
6293 PyObject *__pyx_v_coords = 0;
6294 PyObject *__pyx_v_node = 0;
6295 PyObject *__pyx_r = 0;
6296 __Pyx_RefNannyDeclarations
6297 __Pyx_RefNannySetupContext(
"getLocalElement (wrapper)", 0);
6299 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_femSpace,&__pyx_n_s_coords,&__pyx_n_s_node,0};
6300 PyObject* values[3] = {0,0,0};
6301 if (unlikely(__pyx_kwds)) {
6303 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
6305 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6307 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6309 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6312 default:
goto __pyx_L5_argtuple_error;
6314 kw_args = PyDict_Size(__pyx_kwds);
6317 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_femSpace)) != 0)) kw_args--;
6318 else goto __pyx_L5_argtuple_error;
6321 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coords)) != 0)) kw_args--;
6323 __Pyx_RaiseArgtupleInvalid(
"getLocalElement", 1, 3, 3, 1); __PYX_ERR(0, 388, __pyx_L3_error)
6327 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
6329 __Pyx_RaiseArgtupleInvalid(
"getLocalElement", 1, 3, 3, 2); __PYX_ERR(0, 388, __pyx_L3_error)
6332 if (unlikely(kw_args > 0)) {
6333 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"getLocalElement") < 0)) __PYX_ERR(0, 388, __pyx_L3_error)
6335 }
else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
6336 goto __pyx_L5_argtuple_error;
6338 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6339 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6340 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6342 __pyx_v_femSpace = values[0];
6343 __pyx_v_coords = values[1];
6344 __pyx_v_node = values[2];
6346 goto __pyx_L4_argument_unpacking_done;
6347 __pyx_L5_argtuple_error:;
6348 __Pyx_RaiseArgtupleInvalid(
"getLocalElement", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 388, __pyx_L3_error)
6350 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getLocalElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
6351 __Pyx_RefNannyFinishContext();
6353 __pyx_L4_argument_unpacking_done:;
6354 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_32getLocalElement(__pyx_self, __pyx_v_femSpace, __pyx_v_coords, __pyx_v_node);
6357 __Pyx_RefNannyFinishContext();
6361 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_32getLocalElement(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_femSpace, PyObject *__pyx_v_coords, PyObject *__pyx_v_node) {
6362 PyObject *__pyx_v_patchBoundaryNodes = NULL;
6363 PyObject *__pyx_v_checkedElements = NULL;
6364 PyObject *__pyx_v_eOffset = NULL;
6365 PyObject *__pyx_v_eN = NULL;
6366 PyObject *__pyx_v_xi = NULL;
6367 PyObject *__pyx_r = NULL;
6368 __Pyx_RefNannyDeclarations
6369 PyObject *__pyx_t_1 = NULL;
6370 PyObject *__pyx_t_2 = NULL;
6371 PyObject *__pyx_t_3 = NULL;
6372 Py_ssize_t __pyx_t_4;
6374 PyObject *__pyx_t_6 = NULL;
6375 PyObject *(*__pyx_t_7)(PyObject *);
6378 PyObject *__pyx_t_10 = NULL;
6379 Py_ssize_t __pyx_t_11;
6381 Py_ssize_t __pyx_t_13;
6383 PyObject *__pyx_t_15 = NULL;
6384 __Pyx_RefNannySetupContext(
"getLocalElement", 0);
6385 __Pyx_INCREF(__pyx_v_node);
6394 __pyx_t_1 = PySet_New(0);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 409, __pyx_L1_error)
6395 __Pyx_GOTREF(__pyx_t_1);
6396 __pyx_v_patchBoundaryNodes = ((PyObject*)__pyx_t_1);
6406 __pyx_t_1 = PyList_New(0);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 410, __pyx_L1_error)
6407 __Pyx_GOTREF(__pyx_t_1);
6408 __pyx_v_checkedElements = ((PyObject*)__pyx_t_1);
6418 __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_node, __pyx_int_1, 1, 0, 0);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 413, __pyx_L1_error)
6419 __Pyx_GOTREF(__pyx_t_1);
6420 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 413, __pyx_L1_error)
6421 __Pyx_GOTREF(__pyx_t_2);
6422 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_nodeElementOffsets);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 413, __pyx_L1_error)
6423 __Pyx_GOTREF(__pyx_t_3);
6424 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6425 __pyx_t_4 = PyObject_Length(__pyx_t_3);
if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 413, __pyx_L1_error)
6426 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6427 __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_4);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 413, __pyx_L1_error)
6428 __Pyx_GOTREF(__pyx_t_3);
6429 __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_2);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 413, __pyx_L1_error)
6430 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6431 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6432 __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2);
if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 413, __pyx_L1_error)
6433 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6443 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 414, __pyx_L1_error)
6444 __Pyx_GOTREF(__pyx_t_2);
6445 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_nodeElementOffsets);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 414, __pyx_L1_error)
6446 __Pyx_GOTREF(__pyx_t_3);
6447 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6448 __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_node);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 414, __pyx_L1_error)
6449 __Pyx_GOTREF(__pyx_t_2);
6450 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6451 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 414, __pyx_L1_error)
6452 __Pyx_GOTREF(__pyx_t_3);
6453 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_nodeElementOffsets);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 414, __pyx_L1_error)
6454 __Pyx_GOTREF(__pyx_t_1);
6455 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6456 __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_node, __pyx_int_1, 1, 0, 0);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 414, __pyx_L1_error)
6457 __Pyx_GOTREF(__pyx_t_3);
6458 __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_3);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 414, __pyx_L1_error)
6459 __Pyx_GOTREF(__pyx_t_6);
6460 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6461 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6462 __pyx_t_3 = PyTuple_New(2);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 414, __pyx_L1_error)
6463 __Pyx_GOTREF(__pyx_t_3);
6464 __Pyx_GIVEREF(__pyx_t_2);
6465 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
6466 __Pyx_GIVEREF(__pyx_t_6);
6467 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_6);
6470 __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 414, __pyx_L1_error)
6471 __Pyx_GOTREF(__pyx_t_6);
6472 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6473 if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
6474 __pyx_t_3 = __pyx_t_6; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
6477 __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_6);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 414, __pyx_L1_error)
6478 __Pyx_GOTREF(__pyx_t_3);
6479 __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext;
if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 414, __pyx_L1_error)
6481 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6483 if (likely(!__pyx_t_7)) {
6484 if (likely(PyList_CheckExact(__pyx_t_3))) {
6485 if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3))
break;
6486 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 6487 __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++;
if (unlikely(0 < 0)) __PYX_ERR(0, 414, __pyx_L1_error)
6489 __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 414, __pyx_L1_error)
6490 __Pyx_GOTREF(__pyx_t_6);
6493 if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3))
break;
6494 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 6495 __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++;
if (unlikely(0 < 0)) __PYX_ERR(0, 414, __pyx_L1_error)
6497 __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 414, __pyx_L1_error)
6498 __Pyx_GOTREF(__pyx_t_6);
6502 __pyx_t_6 = __pyx_t_7(__pyx_t_3);
6503 if (unlikely(!__pyx_t_6)) {
6504 PyObject* exc_type = PyErr_Occurred();
6506 if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
6507 else __PYX_ERR(0, 414, __pyx_L1_error)
6511 __Pyx_GOTREF(__pyx_t_6);
6513 __Pyx_XDECREF_SET(__pyx_v_eOffset, __pyx_t_6);
6523 __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 415, __pyx_L1_error)
6524 __Pyx_GOTREF(__pyx_t_6);
6525 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_nodeElementsArray);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 415, __pyx_L1_error)
6526 __Pyx_GOTREF(__pyx_t_2);
6527 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6528 __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_eOffset);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 415, __pyx_L1_error)
6529 __Pyx_GOTREF(__pyx_t_6);
6530 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6531 __Pyx_XDECREF_SET(__pyx_v_eN, __pyx_t_6);
6541 __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_checkedElements, __pyx_v_eN);
if (unlikely(__pyx_t_8 == ((
int)-1))) __PYX_ERR(0, 416, __pyx_L1_error)
6550 __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 418, __pyx_L1_error)
6551 __Pyx_GOTREF(__pyx_t_6);
6552 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_elementNodesArray);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 418, __pyx_L1_error)
6553 __Pyx_GOTREF(__pyx_t_2);
6554 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6555 __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_eN);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 418, __pyx_L1_error)
6556 __Pyx_GOTREF(__pyx_t_6);
6557 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6558 __pyx_t_2 = PySet_New(__pyx_t_6);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 418, __pyx_L1_error)
6559 __Pyx_GOTREF(__pyx_t_2);
6560 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6561 __pyx_t_6 = PyNumber_InPlaceOr(__pyx_v_patchBoundaryNodes, __pyx_t_2);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 418, __pyx_L1_error)
6562 __Pyx_GOTREF(__pyx_t_6);
6563 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6564 __Pyx_DECREF_SET(__pyx_v_patchBoundaryNodes, ((PyObject*)__pyx_t_6));
6574 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_elementMaps);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 420, __pyx_L1_error)
6575 __Pyx_GOTREF(__pyx_t_2);
6576 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_getInverseValue);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 420, __pyx_L1_error)
6577 __Pyx_GOTREF(__pyx_t_1);
6578 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6581 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
6582 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
6583 if (likely(__pyx_t_2)) {
6584 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_1);
6585 __Pyx_INCREF(__pyx_t_2);
6586 __Pyx_INCREF(
function);
6587 __Pyx_DECREF_SET(__pyx_t_1,
function);
6591 #if CYTHON_FAST_PYCALL 6592 if (PyFunction_Check(__pyx_t_1)) {
6593 PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_eN, __pyx_v_coords};
6594 __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 420, __pyx_L1_error)
6595 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
6596 __Pyx_GOTREF(__pyx_t_6);
6599 #if CYTHON_FAST_PYCCALL 6600 if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
6601 PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_eN, __pyx_v_coords};
6602 __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 420, __pyx_L1_error)
6603 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
6604 __Pyx_GOTREF(__pyx_t_6);
6608 __pyx_t_10 = PyTuple_New(2+__pyx_t_9);
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 420, __pyx_L1_error)
6609 __Pyx_GOTREF(__pyx_t_10);
6611 __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_2); __pyx_t_2 = NULL;
6613 __Pyx_INCREF(__pyx_v_eN);
6614 __Pyx_GIVEREF(__pyx_v_eN);
6615 PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_v_eN);
6616 __Pyx_INCREF(__pyx_v_coords);
6617 __Pyx_GIVEREF(__pyx_v_coords);
6618 PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_v_coords);
6619 __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 420, __pyx_L1_error)
6620 __Pyx_GOTREF(__pyx_t_6);
6621 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
6623 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6624 __Pyx_XDECREF_SET(__pyx_v_xi, __pyx_t_6);
6634 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_elementMaps);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 423, __pyx_L1_error)
6635 __Pyx_GOTREF(__pyx_t_1);
6636 __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_referenceElement);
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 423, __pyx_L1_error)
6637 __Pyx_GOTREF(__pyx_t_10);
6638 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6639 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_onElement);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 423, __pyx_L1_error)
6640 __Pyx_GOTREF(__pyx_t_1);
6641 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
6643 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
6644 __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_1);
6645 if (likely(__pyx_t_10)) {
6646 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_1);
6647 __Pyx_INCREF(__pyx_t_10);
6648 __Pyx_INCREF(
function);
6649 __Pyx_DECREF_SET(__pyx_t_1,
function);
6652 __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_10, __pyx_v_xi) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_xi);
6653 __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
6654 if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 423, __pyx_L1_error)
6655 __Pyx_GOTREF(__pyx_t_6);
6656 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6657 __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6);
if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 423, __pyx_L1_error)
6658 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6668 __Pyx_XDECREF(__pyx_r);
6669 __Pyx_INCREF(__pyx_v_eN);
6670 __pyx_r = __pyx_v_eN;
6671 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6691 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6711 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 426, __pyx_L1_error)
6712 __Pyx_GOTREF(__pyx_t_3);
6713 __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_nodeElementOffsets);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 426, __pyx_L1_error)
6714 __Pyx_GOTREF(__pyx_t_6);
6715 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6716 __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_node);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 426, __pyx_L1_error)
6717 __Pyx_GOTREF(__pyx_t_3);
6718 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6719 __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_3);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 426, __pyx_L1_error)
6720 __Pyx_GOTREF(__pyx_t_6);
6721 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6722 if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
6723 __pyx_t_3 = __pyx_t_6; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
6726 __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_6);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 426, __pyx_L1_error)
6727 __Pyx_GOTREF(__pyx_t_3);
6728 __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext;
if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 426, __pyx_L1_error)
6730 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6732 if (likely(!__pyx_t_7)) {
6733 if (likely(PyList_CheckExact(__pyx_t_3))) {
6734 if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3))
break;
6735 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 6736 __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++;
if (unlikely(0 < 0)) __PYX_ERR(0, 426, __pyx_L1_error)
6738 __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 426, __pyx_L1_error)
6739 __Pyx_GOTREF(__pyx_t_6);
6742 if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3))
break;
6743 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 6744 __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++;
if (unlikely(0 < 0)) __PYX_ERR(0, 426, __pyx_L1_error)
6746 __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 426, __pyx_L1_error)
6747 __Pyx_GOTREF(__pyx_t_6);
6751 __pyx_t_6 = __pyx_t_7(__pyx_t_3);
6752 if (unlikely(!__pyx_t_6)) {
6753 PyObject* exc_type = PyErr_Occurred();
6755 if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
6756 else __PYX_ERR(0, 426, __pyx_L1_error)
6760 __Pyx_GOTREF(__pyx_t_6);
6762 __Pyx_XDECREF_SET(__pyx_v_eOffset, __pyx_t_6);
6772 __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 427, __pyx_L1_error)
6773 __Pyx_GOTREF(__pyx_t_6);
6774 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_nodeElementsArray);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 427, __pyx_L1_error)
6775 __Pyx_GOTREF(__pyx_t_1);
6776 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6777 __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_eOffset);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 427, __pyx_L1_error)
6778 __Pyx_GOTREF(__pyx_t_6);
6779 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6780 __Pyx_XDECREF_SET(__pyx_v_eN, __pyx_t_6);
6790 __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_checkedElements, __pyx_v_eN);
if (unlikely(__pyx_t_8 == ((
int)-1))) __PYX_ERR(0, 428, __pyx_L1_error)
6799 __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 430, __pyx_L1_error)
6800 __Pyx_GOTREF(__pyx_t_6);
6801 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_elementNodesArray);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 430, __pyx_L1_error)
6802 __Pyx_GOTREF(__pyx_t_1);
6803 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6804 __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_eN);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 430, __pyx_L1_error)
6805 __Pyx_GOTREF(__pyx_t_6);
6806 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6807 __pyx_t_1 = PySet_New(__pyx_t_6);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 430, __pyx_L1_error)
6808 __Pyx_GOTREF(__pyx_t_1);
6809 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6810 __pyx_t_6 = PyNumber_InPlaceOr(__pyx_v_patchBoundaryNodes, __pyx_t_1);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 430, __pyx_L1_error)
6811 __Pyx_GOTREF(__pyx_t_6);
6812 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6813 __Pyx_DECREF_SET(__pyx_v_patchBoundaryNodes, ((PyObject*)__pyx_t_6));
6823 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_elementMaps);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 432, __pyx_L1_error)
6824 __Pyx_GOTREF(__pyx_t_1);
6825 __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_getInverseValue);
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 432, __pyx_L1_error)
6826 __Pyx_GOTREF(__pyx_t_10);
6827 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6830 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
6831 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_10);
6832 if (likely(__pyx_t_1)) {
6833 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_10);
6834 __Pyx_INCREF(__pyx_t_1);
6835 __Pyx_INCREF(
function);
6836 __Pyx_DECREF_SET(__pyx_t_10,
function);
6840 #if CYTHON_FAST_PYCALL 6841 if (PyFunction_Check(__pyx_t_10)) {
6842 PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_eN, __pyx_v_coords};
6843 __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 432, __pyx_L1_error)
6844 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
6845 __Pyx_GOTREF(__pyx_t_6);
6848 #if CYTHON_FAST_PYCCALL 6849 if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
6850 PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_eN, __pyx_v_coords};
6851 __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 432, __pyx_L1_error)
6852 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
6853 __Pyx_GOTREF(__pyx_t_6);
6857 __pyx_t_2 = PyTuple_New(2+__pyx_t_9);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 432, __pyx_L1_error)
6858 __Pyx_GOTREF(__pyx_t_2);
6860 __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = NULL;
6862 __Pyx_INCREF(__pyx_v_eN);
6863 __Pyx_GIVEREF(__pyx_v_eN);
6864 PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_9, __pyx_v_eN);
6865 __Pyx_INCREF(__pyx_v_coords);
6866 __Pyx_GIVEREF(__pyx_v_coords);
6867 PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_9, __pyx_v_coords);
6868 __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_2, NULL);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 432, __pyx_L1_error)
6869 __Pyx_GOTREF(__pyx_t_6);
6870 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6872 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
6873 __Pyx_XDECREF_SET(__pyx_v_xi, __pyx_t_6);
6883 __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_elementMaps);
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 435, __pyx_L1_error)
6884 __Pyx_GOTREF(__pyx_t_10);
6885 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_referenceElement);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 435, __pyx_L1_error)
6886 __Pyx_GOTREF(__pyx_t_2);
6887 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
6888 __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_onElement);
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 435, __pyx_L1_error)
6889 __Pyx_GOTREF(__pyx_t_10);
6890 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6892 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
6893 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_10);
6894 if (likely(__pyx_t_2)) {
6895 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_10);
6896 __Pyx_INCREF(__pyx_t_2);
6897 __Pyx_INCREF(
function);
6898 __Pyx_DECREF_SET(__pyx_t_10,
function);
6901 __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_2, __pyx_v_xi) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_xi);
6902 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
6903 if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 435, __pyx_L1_error)
6904 __Pyx_GOTREF(__pyx_t_6);
6905 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
6906 __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6);
if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 435, __pyx_L1_error)
6907 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6917 __Pyx_XDECREF(__pyx_r);
6918 __Pyx_INCREF(__pyx_v_eN);
6919 __pyx_r = __pyx_v_eN;
6920 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6940 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6952 __pyx_t_6 = __Pyx_set_iterator(__pyx_v_patchBoundaryNodes, 1, (&__pyx_t_11), (&__pyx_t_9));
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 438, __pyx_L1_error)
6953 __Pyx_GOTREF(__pyx_t_6);
6954 __Pyx_XDECREF(__pyx_t_3);
6955 __pyx_t_3 = __pyx_t_6;
6958 __pyx_t_12 = __Pyx_set_iter_next(__pyx_t_3, __pyx_t_11, &__pyx_t_4, &__pyx_t_6, __pyx_t_9);
6959 if (unlikely(__pyx_t_12 == 0))
break;
6960 if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 438, __pyx_L1_error)
6961 __Pyx_GOTREF(__pyx_t_6);
6962 __Pyx_DECREF_SET(__pyx_v_node, __pyx_t_6);
6972 __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 439, __pyx_L1_error)
6973 __Pyx_GOTREF(__pyx_t_6);
6974 __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_nodeElementOffsets);
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 439, __pyx_L1_error)
6975 __Pyx_GOTREF(__pyx_t_10);
6976 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6977 __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_node);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 439, __pyx_L1_error)
6978 __Pyx_GOTREF(__pyx_t_6);
6979 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
6980 __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh);
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 439, __pyx_L1_error)
6981 __Pyx_GOTREF(__pyx_t_10);
6982 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_nodeElementOffsets);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 439, __pyx_L1_error)
6983 __Pyx_GOTREF(__pyx_t_2);
6984 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
6985 __pyx_t_10 = __Pyx_PyInt_AddObjC(__pyx_v_node, __pyx_int_1, 1, 0, 0);
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 439, __pyx_L1_error)
6986 __Pyx_GOTREF(__pyx_t_10);
6987 __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_10);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 439, __pyx_L1_error)
6988 __Pyx_GOTREF(__pyx_t_1);
6989 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6990 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
6991 __pyx_t_10 = PyTuple_New(2);
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 439, __pyx_L1_error)
6992 __Pyx_GOTREF(__pyx_t_10);
6993 __Pyx_GIVEREF(__pyx_t_6);
6994 PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_6);
6995 __Pyx_GIVEREF(__pyx_t_1);
6996 PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_1);
6999 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_10, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 439, __pyx_L1_error)
7000 __Pyx_GOTREF(__pyx_t_1);
7001 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
7002 if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
7003 __pyx_t_10 = __pyx_t_1; __Pyx_INCREF(__pyx_t_10); __pyx_t_13 = 0;
7006 __pyx_t_13 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_1);
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 439, __pyx_L1_error)
7007 __Pyx_GOTREF(__pyx_t_10);
7008 __pyx_t_7 = Py_TYPE(__pyx_t_10)->tp_iternext;
if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 439, __pyx_L1_error)
7010 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7012 if (likely(!__pyx_t_7)) {
7013 if (likely(PyList_CheckExact(__pyx_t_10))) {
7014 if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_10))
break;
7015 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 7016 __pyx_t_1 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++;
if (unlikely(0 < 0)) __PYX_ERR(0, 439, __pyx_L1_error)
7018 __pyx_t_1 = PySequence_ITEM(__pyx_t_10, __pyx_t_13); __pyx_t_13++;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 439, __pyx_L1_error)
7019 __Pyx_GOTREF(__pyx_t_1);
7022 if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_10))
break;
7023 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 7024 __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++;
if (unlikely(0 < 0)) __PYX_ERR(0, 439, __pyx_L1_error)
7026 __pyx_t_1 = PySequence_ITEM(__pyx_t_10, __pyx_t_13); __pyx_t_13++;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 439, __pyx_L1_error)
7027 __Pyx_GOTREF(__pyx_t_1);
7031 __pyx_t_1 = __pyx_t_7(__pyx_t_10);
7032 if (unlikely(!__pyx_t_1)) {
7033 PyObject* exc_type = PyErr_Occurred();
7035 if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
7036 else __PYX_ERR(0, 439, __pyx_L1_error)
7040 __Pyx_GOTREF(__pyx_t_1);
7042 __Pyx_XDECREF_SET(__pyx_v_eOffset, __pyx_t_1);
7052 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_mesh);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 440, __pyx_L1_error)
7053 __Pyx_GOTREF(__pyx_t_1);
7054 __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_nodeElementsArray);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 440, __pyx_L1_error)
7055 __Pyx_GOTREF(__pyx_t_6);
7056 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7057 __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_eOffset);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 440, __pyx_L1_error)
7058 __Pyx_GOTREF(__pyx_t_1);
7059 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
7060 __Pyx_XDECREF_SET(__pyx_v_eN, __pyx_t_1);
7070 __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_v_eN, __pyx_v_checkedElements, Py_NE));
if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 441, __pyx_L1_error)
7071 __pyx_t_14 = (__pyx_t_5 != 0);
7081 __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_checkedElements, __pyx_v_eN);
if (unlikely(__pyx_t_8 == ((
int)-1))) __PYX_ERR(0, 442, __pyx_L1_error)
7090 __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_elementMaps);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 444, __pyx_L1_error)
7091 __Pyx_GOTREF(__pyx_t_6);
7092 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_getInverseValue);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 444, __pyx_L1_error)
7093 __Pyx_GOTREF(__pyx_t_2);
7094 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
7097 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7098 __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
7099 if (likely(__pyx_t_6)) {
7100 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_2);
7101 __Pyx_INCREF(__pyx_t_6);
7102 __Pyx_INCREF(
function);
7103 __Pyx_DECREF_SET(__pyx_t_2,
function);
7107 #if CYTHON_FAST_PYCALL 7108 if (PyFunction_Check(__pyx_t_2)) {
7109 PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_eN, __pyx_v_coords};
7110 __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 444, __pyx_L1_error)
7111 __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
7112 __Pyx_GOTREF(__pyx_t_1);
7115 #if CYTHON_FAST_PYCCALL 7116 if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
7117 PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_eN, __pyx_v_coords};
7118 __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 444, __pyx_L1_error)
7119 __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
7120 __Pyx_GOTREF(__pyx_t_1);
7124 __pyx_t_15 = PyTuple_New(2+__pyx_t_12);
if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 444, __pyx_L1_error)
7125 __Pyx_GOTREF(__pyx_t_15);
7127 __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_6); __pyx_t_6 = NULL;
7129 __Pyx_INCREF(__pyx_v_eN);
7130 __Pyx_GIVEREF(__pyx_v_eN);
7131 PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_12, __pyx_v_eN);
7132 __Pyx_INCREF(__pyx_v_coords);
7133 __Pyx_GIVEREF(__pyx_v_coords);
7134 PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_12, __pyx_v_coords);
7135 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_15, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 444, __pyx_L1_error)
7136 __Pyx_GOTREF(__pyx_t_1);
7137 __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
7139 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7140 __Pyx_XDECREF_SET(__pyx_v_xi, __pyx_t_1);
7150 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_femSpace, __pyx_n_s_elementMaps);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 446, __pyx_L1_error)
7151 __Pyx_GOTREF(__pyx_t_2);
7152 __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_referenceElement);
if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 446, __pyx_L1_error)
7153 __Pyx_GOTREF(__pyx_t_15);
7154 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7155 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_onElement);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 446, __pyx_L1_error)
7156 __Pyx_GOTREF(__pyx_t_2);
7157 __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
7159 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7160 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_2);
7161 if (likely(__pyx_t_15)) {
7162 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_2);
7163 __Pyx_INCREF(__pyx_t_15);
7164 __Pyx_INCREF(
function);
7165 __Pyx_DECREF_SET(__pyx_t_2,
function);
7168 __pyx_t_1 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_15, __pyx_v_xi) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_xi);
7169 __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
7170 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 446, __pyx_L1_error)
7171 __Pyx_GOTREF(__pyx_t_1);
7172 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7173 __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_1);
if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 446, __pyx_L1_error)
7174 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7184 __Pyx_XDECREF(__pyx_r);
7185 __Pyx_INCREF(__pyx_v_eN);
7186 __pyx_r = __pyx_v_eN;
7187 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7188 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
7217 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
7219 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7228 __Pyx_XDECREF(__pyx_r);
7229 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7242 __Pyx_XDECREF(__pyx_t_1);
7243 __Pyx_XDECREF(__pyx_t_2);
7244 __Pyx_XDECREF(__pyx_t_3);
7245 __Pyx_XDECREF(__pyx_t_6);
7246 __Pyx_XDECREF(__pyx_t_10);
7247 __Pyx_XDECREF(__pyx_t_15);
7248 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getLocalElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
7251 __Pyx_XDECREF(__pyx_v_patchBoundaryNodes);
7252 __Pyx_XDECREF(__pyx_v_checkedElements);
7253 __Pyx_XDECREF(__pyx_v_eOffset);
7254 __Pyx_XDECREF(__pyx_v_eN);
7255 __Pyx_XDECREF(__pyx_v_xi);
7256 __Pyx_XDECREF(__pyx_v_node);
7257 __Pyx_XGIVEREF(__pyx_r);
7258 __Pyx_RefNannyFinishContext();
7271 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_35updateElementBoundaryNormalsTriangle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
7272 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_35updateElementBoundaryNormalsTriangle = {
"updateElementBoundaryNormalsTriangle", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_35updateElementBoundaryNormalsTriangle, METH_VARARGS|METH_KEYWORDS, 0};
7273 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_35updateElementBoundaryNormalsTriangle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
7274 __Pyx_memviewslice __pyx_v_elementBoundaryNormalsArray_ = { 0, 0, { 0 }, { 0 }, { 0 } };
7275 __Pyx_memviewslice __pyx_v_nodeArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7276 __Pyx_memviewslice __pyx_v_elementBoundariesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7277 __Pyx_memviewslice __pyx_v_elementBoundaryNodesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7278 __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7279 __Pyx_memviewslice __pyx_v_elementBarycentersArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7280 int __pyx_v_nElements;
7281 PyObject *__pyx_r = 0;
7282 __Pyx_RefNannyDeclarations
7283 __Pyx_RefNannySetupContext(
"updateElementBoundaryNormalsTriangle (wrapper)", 0);
7285 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_elementBoundaryNormalsArray_2,&__pyx_n_s_nodeArray_2,&__pyx_n_s_elementBoundariesArray,&__pyx_n_s_elementBoundaryNodesArray,&__pyx_n_s_elementBoundaryBarycentersArray,&__pyx_n_s_elementBarycentersArray,&__pyx_n_s_nElements,0};
7286 PyObject* values[7] = {0,0,0,0,0,0,0};
7287 if (unlikely(__pyx_kwds)) {
7289 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
7291 case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
7293 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
7295 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
7297 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
7299 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
7301 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
7303 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7306 default:
goto __pyx_L5_argtuple_error;
7308 kw_args = PyDict_Size(__pyx_kwds);
7311 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryNormalsArray_2)) != 0)) kw_args--;
7312 else goto __pyx_L5_argtuple_error;
7315 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeArray_2)) != 0)) kw_args--;
7317 __Pyx_RaiseArgtupleInvalid(
"updateElementBoundaryNormalsTriangle", 1, 7, 7, 1); __PYX_ERR(0, 452, __pyx_L3_error)
7321 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundariesArray)) != 0)) kw_args--;
7323 __Pyx_RaiseArgtupleInvalid(
"updateElementBoundaryNormalsTriangle", 1, 7, 7, 2); __PYX_ERR(0, 452, __pyx_L3_error)
7327 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryNodesArray)) != 0)) kw_args--;
7329 __Pyx_RaiseArgtupleInvalid(
"updateElementBoundaryNormalsTriangle", 1, 7, 7, 3); __PYX_ERR(0, 452, __pyx_L3_error)
7333 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryBarycentersArray)) != 0)) kw_args--;
7335 __Pyx_RaiseArgtupleInvalid(
"updateElementBoundaryNormalsTriangle", 1, 7, 7, 4); __PYX_ERR(0, 452, __pyx_L3_error)
7339 if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBarycentersArray)) != 0)) kw_args--;
7341 __Pyx_RaiseArgtupleInvalid(
"updateElementBoundaryNormalsTriangle", 1, 7, 7, 5); __PYX_ERR(0, 452, __pyx_L3_error)
7345 if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nElements)) != 0)) kw_args--;
7347 __Pyx_RaiseArgtupleInvalid(
"updateElementBoundaryNormalsTriangle", 1, 7, 7, 6); __PYX_ERR(0, 452, __pyx_L3_error)
7350 if (unlikely(kw_args > 0)) {
7351 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"updateElementBoundaryNormalsTriangle") < 0)) __PYX_ERR(0, 452, __pyx_L3_error)
7353 }
else if (PyTuple_GET_SIZE(__pyx_args) != 7) {
7354 goto __pyx_L5_argtuple_error;
7356 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7357 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
7358 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
7359 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
7360 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
7361 values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
7362 values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
7364 __pyx_v_elementBoundaryNormalsArray_ = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundaryNormalsArray_.memview)) __PYX_ERR(0, 452, __pyx_L3_error)
7365 __pyx_v_nodeArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeArray.memview)) __PYX_ERR(0, 453, __pyx_L3_error)
7366 __pyx_v_elementBoundariesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundariesArray.memview)) __PYX_ERR(0, 454, __pyx_L3_error)
7367 __pyx_v_elementBoundaryNodesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[3], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundaryNodesArray.memview)) __PYX_ERR(0, 455, __pyx_L3_error)
7368 __pyx_v_elementBoundaryBarycentersArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[4], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundaryBarycentersArray.memview)) __PYX_ERR(0, 456, __pyx_L3_error)
7369 __pyx_v_elementBarycentersArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[5], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBarycentersArray.memview)) __PYX_ERR(0, 457, __pyx_L3_error)
7370 __pyx_v_nElements = __Pyx_PyInt_As_int(values[6]);
if (unlikely((__pyx_v_nElements == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 458, __pyx_L3_error)
7372 goto __pyx_L4_argument_unpacking_done;
7373 __pyx_L5_argtuple_error:;
7374 __Pyx_RaiseArgtupleInvalid(
"updateElementBoundaryNormalsTriangle", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 452, __pyx_L3_error)
7376 __Pyx_AddTraceback(
"mprans.MeshSmoothing.updateElementBoundaryNormalsTriangle", __pyx_clineno, __pyx_lineno, __pyx_filename);
7377 __Pyx_RefNannyFinishContext();
7379 __pyx_L4_argument_unpacking_done:;
7380 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_34updateElementBoundaryNormalsTriangle(__pyx_self, __pyx_v_elementBoundaryNormalsArray_, __pyx_v_nodeArray, __pyx_v_elementBoundariesArray, __pyx_v_elementBoundaryNodesArray, __pyx_v_elementBoundaryBarycentersArray, __pyx_v_elementBarycentersArray, __pyx_v_nElements);
7383 __Pyx_RefNannyFinishContext();
7387 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_34updateElementBoundaryNormalsTriangle(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_elementBoundaryNormalsArray_, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementBoundariesArray, __Pyx_memviewslice __pyx_v_elementBoundaryNodesArray, __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray, __Pyx_memviewslice __pyx_v_elementBarycentersArray,
int __pyx_v_nElements) {
7388 PyObject *__pyx_r = NULL;
7389 __Pyx_RefNannyDeclarations
7390 __Pyx_RefNannySetupContext(
"updateElementBoundaryNormalsTriangle", 0);
7399 __pyx_f_6mprans_13MeshSmoothing_pyxUpdateElementBoundaryNormalsTriangle(__pyx_v_elementBoundaryNormalsArray_, __pyx_v_nodeArray, __pyx_v_elementBoundariesArray, __pyx_v_elementBoundaryNodesArray, __pyx_v_elementBoundaryBarycentersArray, __pyx_v_elementBarycentersArray, __pyx_v_nElements);
7410 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7411 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundaryNormalsArray_, 1);
7412 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray, 1);
7413 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundariesArray, 1);
7414 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundaryNodesArray, 1);
7415 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundaryBarycentersArray, 1);
7416 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBarycentersArray, 1);
7417 __Pyx_XGIVEREF(__pyx_r);
7418 __Pyx_RefNannyFinishContext();
7431 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_37getElementBoundaryNormalsTriangle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
7432 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_37getElementBoundaryNormalsTriangle = {
"getElementBoundaryNormalsTriangle", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_37getElementBoundaryNormalsTriangle, METH_VARARGS|METH_KEYWORDS, 0};
7433 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_37getElementBoundaryNormalsTriangle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
7434 __Pyx_memviewslice __pyx_v_nodeArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7435 __Pyx_memviewslice __pyx_v_elementBoundariesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7436 __Pyx_memviewslice __pyx_v_elementBoundaryNodesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7437 __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7438 __Pyx_memviewslice __pyx_v_elementBarycentersArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7439 PyObject *__pyx_r = 0;
7440 __Pyx_RefNannyDeclarations
7441 __Pyx_RefNannySetupContext(
"getElementBoundaryNormalsTriangle (wrapper)", 0);
7443 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nodeArray_2,&__pyx_n_s_elementBoundariesArray,&__pyx_n_s_elementBoundaryNodesArray,&__pyx_n_s_elementBoundaryBarycentersArray,&__pyx_n_s_elementBarycentersArray,0};
7444 PyObject* values[5] = {0,0,0,0,0};
7445 if (unlikely(__pyx_kwds)) {
7447 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
7449 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
7451 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
7453 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
7455 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
7457 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7460 default:
goto __pyx_L5_argtuple_error;
7462 kw_args = PyDict_Size(__pyx_kwds);
7465 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeArray_2)) != 0)) kw_args--;
7466 else goto __pyx_L5_argtuple_error;
7469 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundariesArray)) != 0)) kw_args--;
7471 __Pyx_RaiseArgtupleInvalid(
"getElementBoundaryNormalsTriangle", 1, 5, 5, 1); __PYX_ERR(0, 467, __pyx_L3_error)
7475 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryNodesArray)) != 0)) kw_args--;
7477 __Pyx_RaiseArgtupleInvalid(
"getElementBoundaryNormalsTriangle", 1, 5, 5, 2); __PYX_ERR(0, 467, __pyx_L3_error)
7481 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryBarycentersArray)) != 0)) kw_args--;
7483 __Pyx_RaiseArgtupleInvalid(
"getElementBoundaryNormalsTriangle", 1, 5, 5, 3); __PYX_ERR(0, 467, __pyx_L3_error)
7487 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBarycentersArray)) != 0)) kw_args--;
7489 __Pyx_RaiseArgtupleInvalid(
"getElementBoundaryNormalsTriangle", 1, 5, 5, 4); __PYX_ERR(0, 467, __pyx_L3_error)
7492 if (unlikely(kw_args > 0)) {
7493 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"getElementBoundaryNormalsTriangle") < 0)) __PYX_ERR(0, 467, __pyx_L3_error)
7495 }
else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
7496 goto __pyx_L5_argtuple_error;
7498 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7499 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
7500 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
7501 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
7502 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
7504 __pyx_v_nodeArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeArray.memview)) __PYX_ERR(0, 467, __pyx_L3_error)
7505 __pyx_v_elementBoundariesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundariesArray.memview)) __PYX_ERR(0, 468, __pyx_L3_error)
7506 __pyx_v_elementBoundaryNodesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundaryNodesArray.memview)) __PYX_ERR(0, 469, __pyx_L3_error)
7507 __pyx_v_elementBoundaryBarycentersArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[3], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundaryBarycentersArray.memview)) __PYX_ERR(0, 470, __pyx_L3_error)
7508 __pyx_v_elementBarycentersArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[4], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBarycentersArray.memview)) __PYX_ERR(0, 471, __pyx_L3_error)
7510 goto __pyx_L4_argument_unpacking_done;
7511 __pyx_L5_argtuple_error:;
7512 __Pyx_RaiseArgtupleInvalid(
"getElementBoundaryNormalsTriangle", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 467, __pyx_L3_error)
7514 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getElementBoundaryNormalsTriangle", __pyx_clineno, __pyx_lineno, __pyx_filename);
7515 __Pyx_RefNannyFinishContext();
7517 __pyx_L4_argument_unpacking_done:;
7518 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_36getElementBoundaryNormalsTriangle(__pyx_self, __pyx_v_nodeArray, __pyx_v_elementBoundariesArray, __pyx_v_elementBoundaryNodesArray, __pyx_v_elementBoundaryBarycentersArray, __pyx_v_elementBarycentersArray);
7521 __Pyx_RefNannyFinishContext();
7525 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_36getElementBoundaryNormalsTriangle(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementBoundariesArray, __Pyx_memviewslice __pyx_v_elementBoundaryNodesArray, __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray, __Pyx_memviewslice __pyx_v_elementBarycentersArray) {
7526 PyObject *__pyx_v_elementBoundaryNormalsArray_ = NULL;
7527 int __pyx_v_nElements;
7528 PyObject *__pyx_r = NULL;
7529 __Pyx_RefNannyDeclarations
7530 PyObject *__pyx_t_1 = NULL;
7531 PyObject *__pyx_t_2 = NULL;
7532 PyObject *__pyx_t_3 = NULL;
7533 PyObject *__pyx_t_4 = NULL;
7535 PyObject *__pyx_t_6 = NULL;
7536 Py_ssize_t __pyx_t_7;
7537 __Pyx_memviewslice __pyx_t_8 = { 0, 0, { 0 }, { 0 }, { 0 } };
7538 __Pyx_RefNannySetupContext(
"getElementBoundaryNormalsTriangle", 0);
7547 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 472, __pyx_L1_error)
7548 __Pyx_GOTREF(__pyx_t_2);
7549 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 472, __pyx_L1_error)
7550 __Pyx_GOTREF(__pyx_t_3);
7551 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7552 __pyx_t_2 = PyInt_FromSsize_t((__pyx_v_elementBoundariesArray.shape[0]));
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 472, __pyx_L1_error)
7553 __Pyx_GOTREF(__pyx_t_2);
7556 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
7557 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
7558 if (likely(__pyx_t_4)) {
7559 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_3);
7560 __Pyx_INCREF(__pyx_t_4);
7561 __Pyx_INCREF(
function);
7562 __Pyx_DECREF_SET(__pyx_t_3,
function);
7566 #if CYTHON_FAST_PYCALL 7567 if (PyFunction_Check(__pyx_t_3)) {
7568 PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_2, __pyx_int_3, __pyx_int_3};
7569 __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 472, __pyx_L1_error)
7570 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
7571 __Pyx_GOTREF(__pyx_t_1);
7572 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7575 #if CYTHON_FAST_PYCCALL 7576 if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
7577 PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_2, __pyx_int_3, __pyx_int_3};
7578 __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 472, __pyx_L1_error)
7579 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
7580 __Pyx_GOTREF(__pyx_t_1);
7581 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7585 __pyx_t_6 = PyTuple_New(3+__pyx_t_5);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 472, __pyx_L1_error)
7586 __Pyx_GOTREF(__pyx_t_6);
7588 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
7590 __Pyx_GIVEREF(__pyx_t_2);
7591 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2);
7592 __Pyx_INCREF(__pyx_int_3);
7593 __Pyx_GIVEREF(__pyx_int_3);
7594 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_int_3);
7595 __Pyx_INCREF(__pyx_int_3);
7596 __Pyx_GIVEREF(__pyx_int_3);
7597 PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_int_3);
7599 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 472, __pyx_L1_error)
7600 __Pyx_GOTREF(__pyx_t_1);
7601 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
7603 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7604 __pyx_v_elementBoundaryNormalsArray_ = __pyx_t_1;
7614 __pyx_t_7 = PyObject_Length(__pyx_v_elementBoundaryNormalsArray_);
if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 473, __pyx_L1_error)
7615 __pyx_v_nElements = __pyx_t_7;
7624 __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_double(__pyx_v_elementBoundaryNormalsArray_, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 474, __pyx_L1_error)
7633 __pyx_f_6mprans_13MeshSmoothing_pyxUpdateElementBoundaryNormalsTriangle(__pyx_t_8, __pyx_v_nodeArray, __pyx_v_elementBoundariesArray, __pyx_v_elementBoundaryNodesArray, __pyx_v_elementBoundaryBarycentersArray, __pyx_v_elementBarycentersArray, __pyx_v_nElements);
7634 __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1);
7635 __pyx_t_8.memview = NULL;
7636 __pyx_t_8.data = NULL;
7645 __Pyx_XDECREF(__pyx_r);
7646 __Pyx_INCREF(__pyx_v_elementBoundaryNormalsArray_);
7647 __pyx_r = __pyx_v_elementBoundaryNormalsArray_;
7660 __Pyx_XDECREF(__pyx_t_1);
7661 __Pyx_XDECREF(__pyx_t_2);
7662 __Pyx_XDECREF(__pyx_t_3);
7663 __Pyx_XDECREF(__pyx_t_4);
7664 __Pyx_XDECREF(__pyx_t_6);
7665 __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1);
7666 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getElementBoundaryNormalsTriangle", __pyx_clineno, __pyx_lineno, __pyx_filename);
7669 __Pyx_XDECREF(__pyx_v_elementBoundaryNormalsArray_);
7670 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray, 1);
7671 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundariesArray, 1);
7672 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundaryNodesArray, 1);
7673 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundaryBarycentersArray, 1);
7674 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBarycentersArray, 1);
7675 __Pyx_XGIVEREF(__pyx_r);
7676 __Pyx_RefNannyFinishContext();
7689 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_39updateElementBoundaryNormalsTetra(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
7690 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_39updateElementBoundaryNormalsTetra = {
"updateElementBoundaryNormalsTetra", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_39updateElementBoundaryNormalsTetra, METH_VARARGS|METH_KEYWORDS, 0};
7691 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_39updateElementBoundaryNormalsTetra(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
7692 __Pyx_memviewslice __pyx_v_elementBoundaryNormalsArray_ = { 0, 0, { 0 }, { 0 }, { 0 } };
7693 __Pyx_memviewslice __pyx_v_nodeArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7694 __Pyx_memviewslice __pyx_v_elementBoundariesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7695 __Pyx_memviewslice __pyx_v_elementBoundaryNodesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7696 __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7697 __Pyx_memviewslice __pyx_v_elementBarycentersArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7698 int __pyx_v_nElements;
7699 PyObject *__pyx_r = 0;
7700 __Pyx_RefNannyDeclarations
7701 __Pyx_RefNannySetupContext(
"updateElementBoundaryNormalsTetra (wrapper)", 0);
7703 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_elementBoundaryNormalsArray_2,&__pyx_n_s_nodeArray_2,&__pyx_n_s_elementBoundariesArray,&__pyx_n_s_elementBoundaryNodesArray,&__pyx_n_s_elementBoundaryBarycentersArray,&__pyx_n_s_elementBarycentersArray,&__pyx_n_s_nElements,0};
7704 PyObject* values[7] = {0,0,0,0,0,0,0};
7705 if (unlikely(__pyx_kwds)) {
7707 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
7709 case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
7711 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
7713 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
7715 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
7717 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
7719 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
7721 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7724 default:
goto __pyx_L5_argtuple_error;
7726 kw_args = PyDict_Size(__pyx_kwds);
7729 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryNormalsArray_2)) != 0)) kw_args--;
7730 else goto __pyx_L5_argtuple_error;
7733 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeArray_2)) != 0)) kw_args--;
7735 __Pyx_RaiseArgtupleInvalid(
"updateElementBoundaryNormalsTetra", 1, 7, 7, 1); __PYX_ERR(0, 483, __pyx_L3_error)
7739 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundariesArray)) != 0)) kw_args--;
7741 __Pyx_RaiseArgtupleInvalid(
"updateElementBoundaryNormalsTetra", 1, 7, 7, 2); __PYX_ERR(0, 483, __pyx_L3_error)
7745 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryNodesArray)) != 0)) kw_args--;
7747 __Pyx_RaiseArgtupleInvalid(
"updateElementBoundaryNormalsTetra", 1, 7, 7, 3); __PYX_ERR(0, 483, __pyx_L3_error)
7751 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryBarycentersArray)) != 0)) kw_args--;
7753 __Pyx_RaiseArgtupleInvalid(
"updateElementBoundaryNormalsTetra", 1, 7, 7, 4); __PYX_ERR(0, 483, __pyx_L3_error)
7757 if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBarycentersArray)) != 0)) kw_args--;
7759 __Pyx_RaiseArgtupleInvalid(
"updateElementBoundaryNormalsTetra", 1, 7, 7, 5); __PYX_ERR(0, 483, __pyx_L3_error)
7763 if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nElements)) != 0)) kw_args--;
7765 __Pyx_RaiseArgtupleInvalid(
"updateElementBoundaryNormalsTetra", 1, 7, 7, 6); __PYX_ERR(0, 483, __pyx_L3_error)
7768 if (unlikely(kw_args > 0)) {
7769 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"updateElementBoundaryNormalsTetra") < 0)) __PYX_ERR(0, 483, __pyx_L3_error)
7771 }
else if (PyTuple_GET_SIZE(__pyx_args) != 7) {
7772 goto __pyx_L5_argtuple_error;
7774 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7775 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
7776 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
7777 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
7778 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
7779 values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
7780 values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
7782 __pyx_v_elementBoundaryNormalsArray_ = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundaryNormalsArray_.memview)) __PYX_ERR(0, 483, __pyx_L3_error)
7783 __pyx_v_nodeArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeArray.memview)) __PYX_ERR(0, 484, __pyx_L3_error)
7784 __pyx_v_elementBoundariesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundariesArray.memview)) __PYX_ERR(0, 485, __pyx_L3_error)
7785 __pyx_v_elementBoundaryNodesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[3], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundaryNodesArray.memview)) __PYX_ERR(0, 486, __pyx_L3_error)
7786 __pyx_v_elementBoundaryBarycentersArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[4], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundaryBarycentersArray.memview)) __PYX_ERR(0, 487, __pyx_L3_error)
7787 __pyx_v_elementBarycentersArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[5], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBarycentersArray.memview)) __PYX_ERR(0, 488, __pyx_L3_error)
7788 __pyx_v_nElements = __Pyx_PyInt_As_int(values[6]);
if (unlikely((__pyx_v_nElements == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L3_error)
7790 goto __pyx_L4_argument_unpacking_done;
7791 __pyx_L5_argtuple_error:;
7792 __Pyx_RaiseArgtupleInvalid(
"updateElementBoundaryNormalsTetra", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 483, __pyx_L3_error)
7794 __Pyx_AddTraceback(
"mprans.MeshSmoothing.updateElementBoundaryNormalsTetra", __pyx_clineno, __pyx_lineno, __pyx_filename);
7795 __Pyx_RefNannyFinishContext();
7797 __pyx_L4_argument_unpacking_done:;
7798 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_38updateElementBoundaryNormalsTetra(__pyx_self, __pyx_v_elementBoundaryNormalsArray_, __pyx_v_nodeArray, __pyx_v_elementBoundariesArray, __pyx_v_elementBoundaryNodesArray, __pyx_v_elementBoundaryBarycentersArray, __pyx_v_elementBarycentersArray, __pyx_v_nElements);
7801 __Pyx_RefNannyFinishContext();
7805 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_38updateElementBoundaryNormalsTetra(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_elementBoundaryNormalsArray_, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementBoundariesArray, __Pyx_memviewslice __pyx_v_elementBoundaryNodesArray, __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray, __Pyx_memviewslice __pyx_v_elementBarycentersArray,
int __pyx_v_nElements) {
7806 PyObject *__pyx_r = NULL;
7807 __Pyx_RefNannyDeclarations
7808 __Pyx_RefNannySetupContext(
"updateElementBoundaryNormalsTetra", 0);
7817 __pyx_f_6mprans_13MeshSmoothing_pyxUpdateElementBoundaryNormalsTetra(__pyx_v_elementBoundaryNormalsArray_, __pyx_v_nodeArray, __pyx_v_elementBoundariesArray, __pyx_v_elementBoundaryNodesArray, __pyx_v_elementBoundaryBarycentersArray, __pyx_v_elementBarycentersArray, __pyx_v_nElements);
7828 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7829 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundaryNormalsArray_, 1);
7830 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray, 1);
7831 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundariesArray, 1);
7832 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundaryNodesArray, 1);
7833 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundaryBarycentersArray, 1);
7834 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBarycentersArray, 1);
7835 __Pyx_XGIVEREF(__pyx_r);
7836 __Pyx_RefNannyFinishContext();
7849 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_41getElementBoundaryNormalsTetra(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
7850 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_41getElementBoundaryNormalsTetra = {
"getElementBoundaryNormalsTetra", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_41getElementBoundaryNormalsTetra, METH_VARARGS|METH_KEYWORDS, 0};
7851 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_41getElementBoundaryNormalsTetra(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
7852 __Pyx_memviewslice __pyx_v_nodeArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7853 __Pyx_memviewslice __pyx_v_elementBoundariesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7854 __Pyx_memviewslice __pyx_v_elementBoundaryNodesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7855 __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7856 __Pyx_memviewslice __pyx_v_elementBarycentersArray = { 0, 0, { 0 }, { 0 }, { 0 } };
7857 PyObject *__pyx_r = 0;
7858 __Pyx_RefNannyDeclarations
7859 __Pyx_RefNannySetupContext(
"getElementBoundaryNormalsTetra (wrapper)", 0);
7861 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nodeArray_2,&__pyx_n_s_elementBoundariesArray,&__pyx_n_s_elementBoundaryNodesArray,&__pyx_n_s_elementBoundaryBarycentersArray,&__pyx_n_s_elementBarycentersArray,0};
7862 PyObject* values[5] = {0,0,0,0,0};
7863 if (unlikely(__pyx_kwds)) {
7865 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
7867 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
7869 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
7871 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
7873 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
7875 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7878 default:
goto __pyx_L5_argtuple_error;
7880 kw_args = PyDict_Size(__pyx_kwds);
7883 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeArray_2)) != 0)) kw_args--;
7884 else goto __pyx_L5_argtuple_error;
7887 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundariesArray)) != 0)) kw_args--;
7889 __Pyx_RaiseArgtupleInvalid(
"getElementBoundaryNormalsTetra", 1, 5, 5, 1); __PYX_ERR(0, 498, __pyx_L3_error)
7893 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryNodesArray)) != 0)) kw_args--;
7895 __Pyx_RaiseArgtupleInvalid(
"getElementBoundaryNormalsTetra", 1, 5, 5, 2); __PYX_ERR(0, 498, __pyx_L3_error)
7899 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBoundaryBarycentersArray)) != 0)) kw_args--;
7901 __Pyx_RaiseArgtupleInvalid(
"getElementBoundaryNormalsTetra", 1, 5, 5, 3); __PYX_ERR(0, 498, __pyx_L3_error)
7905 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBarycentersArray)) != 0)) kw_args--;
7907 __Pyx_RaiseArgtupleInvalid(
"getElementBoundaryNormalsTetra", 1, 5, 5, 4); __PYX_ERR(0, 498, __pyx_L3_error)
7910 if (unlikely(kw_args > 0)) {
7911 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"getElementBoundaryNormalsTetra") < 0)) __PYX_ERR(0, 498, __pyx_L3_error)
7913 }
else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
7914 goto __pyx_L5_argtuple_error;
7916 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7917 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
7918 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
7919 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
7920 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
7922 __pyx_v_nodeArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeArray.memview)) __PYX_ERR(0, 498, __pyx_L3_error)
7923 __pyx_v_elementBoundariesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundariesArray.memview)) __PYX_ERR(0, 499, __pyx_L3_error)
7924 __pyx_v_elementBoundaryNodesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundaryNodesArray.memview)) __PYX_ERR(0, 500, __pyx_L3_error)
7925 __pyx_v_elementBoundaryBarycentersArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[3], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBoundaryBarycentersArray.memview)) __PYX_ERR(0, 501, __pyx_L3_error)
7926 __pyx_v_elementBarycentersArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[4], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBarycentersArray.memview)) __PYX_ERR(0, 502, __pyx_L3_error)
7928 goto __pyx_L4_argument_unpacking_done;
7929 __pyx_L5_argtuple_error:;
7930 __Pyx_RaiseArgtupleInvalid(
"getElementBoundaryNormalsTetra", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 498, __pyx_L3_error)
7932 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getElementBoundaryNormalsTetra", __pyx_clineno, __pyx_lineno, __pyx_filename);
7933 __Pyx_RefNannyFinishContext();
7935 __pyx_L4_argument_unpacking_done:;
7936 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_40getElementBoundaryNormalsTetra(__pyx_self, __pyx_v_nodeArray, __pyx_v_elementBoundariesArray, __pyx_v_elementBoundaryNodesArray, __pyx_v_elementBoundaryBarycentersArray, __pyx_v_elementBarycentersArray);
7939 __Pyx_RefNannyFinishContext();
7943 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_40getElementBoundaryNormalsTetra(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementBoundariesArray, __Pyx_memviewslice __pyx_v_elementBoundaryNodesArray, __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray, __Pyx_memviewslice __pyx_v_elementBarycentersArray) {
7944 PyObject *__pyx_v_elementBoundaryNormalsArray_ = NULL;
7945 int __pyx_v_nElements;
7946 PyObject *__pyx_r = NULL;
7947 __Pyx_RefNannyDeclarations
7948 PyObject *__pyx_t_1 = NULL;
7949 PyObject *__pyx_t_2 = NULL;
7950 PyObject *__pyx_t_3 = NULL;
7951 PyObject *__pyx_t_4 = NULL;
7953 PyObject *__pyx_t_6 = NULL;
7954 Py_ssize_t __pyx_t_7;
7955 __Pyx_memviewslice __pyx_t_8 = { 0, 0, { 0 }, { 0 }, { 0 } };
7956 __Pyx_RefNannySetupContext(
"getElementBoundaryNormalsTetra", 0);
7965 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 503, __pyx_L1_error)
7966 __Pyx_GOTREF(__pyx_t_2);
7967 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 503, __pyx_L1_error)
7968 __Pyx_GOTREF(__pyx_t_3);
7969 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7970 __pyx_t_2 = PyInt_FromSsize_t((__pyx_v_elementBoundariesArray.shape[0]));
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 503, __pyx_L1_error)
7971 __Pyx_GOTREF(__pyx_t_2);
7974 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
7975 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
7976 if (likely(__pyx_t_4)) {
7977 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_3);
7978 __Pyx_INCREF(__pyx_t_4);
7979 __Pyx_INCREF(
function);
7980 __Pyx_DECREF_SET(__pyx_t_3,
function);
7984 #if CYTHON_FAST_PYCALL 7985 if (PyFunction_Check(__pyx_t_3)) {
7986 PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_2, __pyx_int_4, __pyx_int_3};
7987 __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 503, __pyx_L1_error)
7988 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
7989 __Pyx_GOTREF(__pyx_t_1);
7990 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7993 #if CYTHON_FAST_PYCCALL 7994 if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
7995 PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_2, __pyx_int_4, __pyx_int_3};
7996 __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 503, __pyx_L1_error)
7997 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
7998 __Pyx_GOTREF(__pyx_t_1);
7999 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8003 __pyx_t_6 = PyTuple_New(3+__pyx_t_5);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 503, __pyx_L1_error)
8004 __Pyx_GOTREF(__pyx_t_6);
8006 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
8008 __Pyx_GIVEREF(__pyx_t_2);
8009 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2);
8010 __Pyx_INCREF(__pyx_int_4);
8011 __Pyx_GIVEREF(__pyx_int_4);
8012 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_int_4);
8013 __Pyx_INCREF(__pyx_int_3);
8014 __Pyx_GIVEREF(__pyx_int_3);
8015 PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_int_3);
8017 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 503, __pyx_L1_error)
8018 __Pyx_GOTREF(__pyx_t_1);
8019 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
8021 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
8022 __pyx_v_elementBoundaryNormalsArray_ = __pyx_t_1;
8032 __pyx_t_7 = PyObject_Length(__pyx_v_elementBoundaryNormalsArray_);
if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 504, __pyx_L1_error)
8033 __pyx_v_nElements = __pyx_t_7;
8042 __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_double(__pyx_v_elementBoundaryNormalsArray_, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 505, __pyx_L1_error)
8051 __pyx_f_6mprans_13MeshSmoothing_pyxUpdateElementBoundaryNormalsTetra(__pyx_t_8, __pyx_v_nodeArray, __pyx_v_elementBoundariesArray, __pyx_v_elementBoundaryNodesArray, __pyx_v_elementBoundaryBarycentersArray, __pyx_v_elementBarycentersArray, __pyx_v_nElements);
8052 __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1);
8053 __pyx_t_8.memview = NULL;
8054 __pyx_t_8.data = NULL;
8063 __Pyx_XDECREF(__pyx_r);
8064 __Pyx_INCREF(__pyx_v_elementBoundaryNormalsArray_);
8065 __pyx_r = __pyx_v_elementBoundaryNormalsArray_;
8078 __Pyx_XDECREF(__pyx_t_1);
8079 __Pyx_XDECREF(__pyx_t_2);
8080 __Pyx_XDECREF(__pyx_t_3);
8081 __Pyx_XDECREF(__pyx_t_4);
8082 __Pyx_XDECREF(__pyx_t_6);
8083 __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1);
8084 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getElementBoundaryNormalsTetra", __pyx_clineno, __pyx_lineno, __pyx_filename);
8087 __Pyx_XDECREF(__pyx_v_elementBoundaryNormalsArray_);
8088 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray, 1);
8089 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundariesArray, 1);
8090 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundaryNodesArray, 1);
8091 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBoundaryBarycentersArray, 1);
8092 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBarycentersArray, 1);
8093 __Pyx_XGIVEREF(__pyx_r);
8094 __Pyx_RefNannyFinishContext();
8107 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_43updateElementVolumesTriangle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
8108 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_43updateElementVolumesTriangle = {
"updateElementVolumesTriangle", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_43updateElementVolumesTriangle, METH_VARARGS|METH_KEYWORDS, 0};
8109 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_43updateElementVolumesTriangle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
8110 __Pyx_memviewslice __pyx_v_elementVolumesArray_ = { 0, 0, { 0 }, { 0 }, { 0 } };
8111 __Pyx_memviewslice __pyx_v_elementNodesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
8112 __Pyx_memviewslice __pyx_v_nodeArray = { 0, 0, { 0 }, { 0 }, { 0 } };
8113 int __pyx_v_nElements;
8114 PyObject *__pyx_r = 0;
8115 __Pyx_RefNannyDeclarations
8116 __Pyx_RefNannySetupContext(
"updateElementVolumesTriangle (wrapper)", 0);
8118 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_elementVolumesArray_2,&__pyx_n_s_elementNodesArray,&__pyx_n_s_nodeArray_2,&__pyx_n_s_nElements,0};
8119 PyObject* values[4] = {0,0,0,0};
8120 if (unlikely(__pyx_kwds)) {
8122 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
8124 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8126 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8128 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8130 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8133 default:
goto __pyx_L5_argtuple_error;
8135 kw_args = PyDict_Size(__pyx_kwds);
8138 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementVolumesArray_2)) != 0)) kw_args--;
8139 else goto __pyx_L5_argtuple_error;
8142 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementNodesArray)) != 0)) kw_args--;
8144 __Pyx_RaiseArgtupleInvalid(
"updateElementVolumesTriangle", 1, 4, 4, 1); __PYX_ERR(0, 514, __pyx_L3_error)
8148 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeArray_2)) != 0)) kw_args--;
8150 __Pyx_RaiseArgtupleInvalid(
"updateElementVolumesTriangle", 1, 4, 4, 2); __PYX_ERR(0, 514, __pyx_L3_error)
8154 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nElements)) != 0)) kw_args--;
8156 __Pyx_RaiseArgtupleInvalid(
"updateElementVolumesTriangle", 1, 4, 4, 3); __PYX_ERR(0, 514, __pyx_L3_error)
8159 if (unlikely(kw_args > 0)) {
8160 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"updateElementVolumesTriangle") < 0)) __PYX_ERR(0, 514, __pyx_L3_error)
8162 }
else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
8163 goto __pyx_L5_argtuple_error;
8165 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8166 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8167 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8168 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8170 __pyx_v_elementVolumesArray_ = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementVolumesArray_.memview)) __PYX_ERR(0, 514, __pyx_L3_error)
8171 __pyx_v_elementNodesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementNodesArray.memview)) __PYX_ERR(0, 515, __pyx_L3_error)
8172 __pyx_v_nodeArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeArray.memview)) __PYX_ERR(0, 516, __pyx_L3_error)
8173 __pyx_v_nElements = __Pyx_PyInt_As_int(values[3]);
if (unlikely((__pyx_v_nElements == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 517, __pyx_L3_error)
8175 goto __pyx_L4_argument_unpacking_done;
8176 __pyx_L5_argtuple_error:;
8177 __Pyx_RaiseArgtupleInvalid(
"updateElementVolumesTriangle", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 514, __pyx_L3_error)
8179 __Pyx_AddTraceback(
"mprans.MeshSmoothing.updateElementVolumesTriangle", __pyx_clineno, __pyx_lineno, __pyx_filename);
8180 __Pyx_RefNannyFinishContext();
8182 __pyx_L4_argument_unpacking_done:;
8183 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_42updateElementVolumesTriangle(__pyx_self, __pyx_v_elementVolumesArray_, __pyx_v_elementNodesArray, __pyx_v_nodeArray, __pyx_v_nElements);
8186 __Pyx_RefNannyFinishContext();
8190 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_42updateElementVolumesTriangle(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_elementVolumesArray_, __Pyx_memviewslice __pyx_v_elementNodesArray, __Pyx_memviewslice __pyx_v_nodeArray,
int __pyx_v_nElements) {
8191 PyObject *__pyx_r = NULL;
8192 __Pyx_RefNannyDeclarations
8193 __Pyx_RefNannySetupContext(
"updateElementVolumesTriangle", 0);
8202 __pyx_f_6mprans_13MeshSmoothing_cyUpdateElementVolumesTriangle(__pyx_v_elementVolumesArray_, __pyx_v_elementNodesArray, __pyx_v_nodeArray, __pyx_v_nElements);
8213 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8214 __PYX_XDEC_MEMVIEW(&__pyx_v_elementVolumesArray_, 1);
8215 __PYX_XDEC_MEMVIEW(&__pyx_v_elementNodesArray, 1);
8216 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray, 1);
8217 __Pyx_XGIVEREF(__pyx_r);
8218 __Pyx_RefNannyFinishContext();
8231 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_45getElementVolumeTriangle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
8232 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_45getElementVolumeTriangle = {
"getElementVolumeTriangle", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_45getElementVolumeTriangle, METH_VARARGS|METH_KEYWORDS, 0};
8233 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_45getElementVolumeTriangle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
8234 __Pyx_memviewslice __pyx_v_nA = { 0, 0, { 0 }, { 0 }, { 0 } };
8235 __Pyx_memviewslice __pyx_v_nB = { 0, 0, { 0 }, { 0 }, { 0 } };
8236 __Pyx_memviewslice __pyx_v_nC = { 0, 0, { 0 }, { 0 }, { 0 } };
8237 PyObject *__pyx_r = 0;
8238 __Pyx_RefNannyDeclarations
8239 __Pyx_RefNannySetupContext(
"getElementVolumeTriangle (wrapper)", 0);
8241 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nA,&__pyx_n_s_nB,&__pyx_n_s_nC,0};
8242 PyObject* values[3] = {0,0,0};
8243 if (unlikely(__pyx_kwds)) {
8245 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
8247 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8249 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8251 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8254 default:
goto __pyx_L5_argtuple_error;
8256 kw_args = PyDict_Size(__pyx_kwds);
8259 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nA)) != 0)) kw_args--;
8260 else goto __pyx_L5_argtuple_error;
8263 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nB)) != 0)) kw_args--;
8265 __Pyx_RaiseArgtupleInvalid(
"getElementVolumeTriangle", 1, 3, 3, 1); __PYX_ERR(0, 523, __pyx_L3_error)
8269 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nC)) != 0)) kw_args--;
8271 __Pyx_RaiseArgtupleInvalid(
"getElementVolumeTriangle", 1, 3, 3, 2); __PYX_ERR(0, 523, __pyx_L3_error)
8274 if (unlikely(kw_args > 0)) {
8275 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"getElementVolumeTriangle") < 0)) __PYX_ERR(0, 523, __pyx_L3_error)
8277 }
else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
8278 goto __pyx_L5_argtuple_error;
8280 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8281 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8282 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8284 __pyx_v_nA = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nA.memview)) __PYX_ERR(0, 523, __pyx_L3_error)
8285 __pyx_v_nB = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nB.memview)) __PYX_ERR(0, 524, __pyx_L3_error)
8286 __pyx_v_nC = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nC.memview)) __PYX_ERR(0, 525, __pyx_L3_error)
8288 goto __pyx_L4_argument_unpacking_done;
8289 __pyx_L5_argtuple_error:;
8290 __Pyx_RaiseArgtupleInvalid(
"getElementVolumeTriangle", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 523, __pyx_L3_error)
8292 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getElementVolumeTriangle", __pyx_clineno, __pyx_lineno, __pyx_filename);
8293 __Pyx_RefNannyFinishContext();
8295 __pyx_L4_argument_unpacking_done:;
8296 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_44getElementVolumeTriangle(__pyx_self, __pyx_v_nA, __pyx_v_nB, __pyx_v_nC);
8299 __Pyx_RefNannyFinishContext();
8303 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_44getElementVolumeTriangle(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_nA, __Pyx_memviewslice __pyx_v_nB, __Pyx_memviewslice __pyx_v_nC) {
8304 PyObject *__pyx_r = NULL;
8305 __Pyx_RefNannyDeclarations
8306 PyObject *__pyx_t_1 = NULL;
8307 __Pyx_RefNannySetupContext(
"getElementVolumeTriangle", 0);
8316 __Pyx_XDECREF(__pyx_r);
8325 __pyx_t_1 = PyFloat_FromDouble(__pyx_f_6mprans_13MeshSmoothing_cyGetElementVolumeTriangle(__pyx_v_nA, __pyx_v_nB, __pyx_v_nC));
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 526, __pyx_L1_error)
8326 __Pyx_GOTREF(__pyx_t_1);
8327 __pyx_r = __pyx_t_1;
8341 __Pyx_XDECREF(__pyx_t_1);
8342 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getElementVolumeTriangle", __pyx_clineno, __pyx_lineno, __pyx_filename);
8345 __PYX_XDEC_MEMVIEW(&__pyx_v_nA, 1);
8346 __PYX_XDEC_MEMVIEW(&__pyx_v_nB, 1);
8347 __PYX_XDEC_MEMVIEW(&__pyx_v_nC, 1);
8348 __Pyx_XGIVEREF(__pyx_r);
8349 __Pyx_RefNannyFinishContext();
8362 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_47updateElementVolumesTetra(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
8363 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_47updateElementVolumesTetra = {
"updateElementVolumesTetra", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_47updateElementVolumesTetra, METH_VARARGS|METH_KEYWORDS, 0};
8364 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_47updateElementVolumesTetra(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
8365 __Pyx_memviewslice __pyx_v_elementVolumesArray_ = { 0, 0, { 0 }, { 0 }, { 0 } };
8366 __Pyx_memviewslice __pyx_v_elementNodesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
8367 __Pyx_memviewslice __pyx_v_nodeArray = { 0, 0, { 0 }, { 0 }, { 0 } };
8368 int __pyx_v_nElements;
8369 PyObject *__pyx_r = 0;
8370 __Pyx_RefNannyDeclarations
8371 __Pyx_RefNannySetupContext(
"updateElementVolumesTetra (wrapper)", 0);
8373 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_elementVolumesArray_2,&__pyx_n_s_elementNodesArray,&__pyx_n_s_nodeArray_2,&__pyx_n_s_nElements,0};
8374 PyObject* values[4] = {0,0,0,0};
8375 if (unlikely(__pyx_kwds)) {
8377 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
8379 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8381 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8383 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8385 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8388 default:
goto __pyx_L5_argtuple_error;
8390 kw_args = PyDict_Size(__pyx_kwds);
8393 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementVolumesArray_2)) != 0)) kw_args--;
8394 else goto __pyx_L5_argtuple_error;
8397 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementNodesArray)) != 0)) kw_args--;
8399 __Pyx_RaiseArgtupleInvalid(
"updateElementVolumesTetra", 1, 4, 4, 1); __PYX_ERR(0, 530, __pyx_L3_error)
8403 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeArray_2)) != 0)) kw_args--;
8405 __Pyx_RaiseArgtupleInvalid(
"updateElementVolumesTetra", 1, 4, 4, 2); __PYX_ERR(0, 530, __pyx_L3_error)
8409 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nElements)) != 0)) kw_args--;
8411 __Pyx_RaiseArgtupleInvalid(
"updateElementVolumesTetra", 1, 4, 4, 3); __PYX_ERR(0, 530, __pyx_L3_error)
8414 if (unlikely(kw_args > 0)) {
8415 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"updateElementVolumesTetra") < 0)) __PYX_ERR(0, 530, __pyx_L3_error)
8417 }
else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
8418 goto __pyx_L5_argtuple_error;
8420 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8421 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8422 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8423 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8425 __pyx_v_elementVolumesArray_ = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementVolumesArray_.memview)) __PYX_ERR(0, 530, __pyx_L3_error)
8426 __pyx_v_elementNodesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementNodesArray.memview)) __PYX_ERR(0, 531, __pyx_L3_error)
8427 __pyx_v_nodeArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeArray.memview)) __PYX_ERR(0, 532, __pyx_L3_error)
8428 __pyx_v_nElements = __Pyx_PyInt_As_int(values[3]);
if (unlikely((__pyx_v_nElements == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 533, __pyx_L3_error)
8430 goto __pyx_L4_argument_unpacking_done;
8431 __pyx_L5_argtuple_error:;
8432 __Pyx_RaiseArgtupleInvalid(
"updateElementVolumesTetra", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 530, __pyx_L3_error)
8434 __Pyx_AddTraceback(
"mprans.MeshSmoothing.updateElementVolumesTetra", __pyx_clineno, __pyx_lineno, __pyx_filename);
8435 __Pyx_RefNannyFinishContext();
8437 __pyx_L4_argument_unpacking_done:;
8438 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_46updateElementVolumesTetra(__pyx_self, __pyx_v_elementVolumesArray_, __pyx_v_elementNodesArray, __pyx_v_nodeArray, __pyx_v_nElements);
8441 __Pyx_RefNannyFinishContext();
8445 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_46updateElementVolumesTetra(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_elementVolumesArray_, __Pyx_memviewslice __pyx_v_elementNodesArray, __Pyx_memviewslice __pyx_v_nodeArray,
int __pyx_v_nElements) {
8446 PyObject *__pyx_r = NULL;
8447 __Pyx_RefNannyDeclarations
8448 __Pyx_RefNannySetupContext(
"updateElementVolumesTetra", 0);
8457 __pyx_f_6mprans_13MeshSmoothing_cyUpdateElementVolumesTetra(__pyx_v_elementVolumesArray_, __pyx_v_elementNodesArray, __pyx_v_nodeArray, __pyx_v_nElements);
8468 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8469 __PYX_XDEC_MEMVIEW(&__pyx_v_elementVolumesArray_, 1);
8470 __PYX_XDEC_MEMVIEW(&__pyx_v_elementNodesArray, 1);
8471 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray, 1);
8472 __Pyx_XGIVEREF(__pyx_r);
8473 __Pyx_RefNannyFinishContext();
8486 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_49updateElementBarycenters(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
8487 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_49updateElementBarycenters = {
"updateElementBarycenters", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_49updateElementBarycenters, METH_VARARGS|METH_KEYWORDS, 0};
8488 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_49updateElementBarycenters(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
8489 __Pyx_memviewslice __pyx_v_elementBarycentersArray_ = { 0, 0, { 0 }, { 0 }, { 0 } };
8490 __Pyx_memviewslice __pyx_v_elementNodesArray = { 0, 0, { 0 }, { 0 }, { 0 } };
8491 __Pyx_memviewslice __pyx_v_nodeArray = { 0, 0, { 0 }, { 0 }, { 0 } };
8492 int __pyx_v_nElements;
8493 PyObject *__pyx_r = 0;
8494 __Pyx_RefNannyDeclarations
8495 __Pyx_RefNannySetupContext(
"updateElementBarycenters (wrapper)", 0);
8497 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_elementBarycentersArray_2,&__pyx_n_s_elementNodesArray,&__pyx_n_s_nodeArray_2,&__pyx_n_s_nElements,0};
8498 PyObject* values[4] = {0,0,0,0};
8499 if (unlikely(__pyx_kwds)) {
8501 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
8503 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8505 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8507 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8509 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8512 default:
goto __pyx_L5_argtuple_error;
8514 kw_args = PyDict_Size(__pyx_kwds);
8517 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementBarycentersArray_2)) != 0)) kw_args--;
8518 else goto __pyx_L5_argtuple_error;
8521 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elementNodesArray)) != 0)) kw_args--;
8523 __Pyx_RaiseArgtupleInvalid(
"updateElementBarycenters", 1, 4, 4, 1); __PYX_ERR(0, 539, __pyx_L3_error)
8527 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeArray_2)) != 0)) kw_args--;
8529 __Pyx_RaiseArgtupleInvalid(
"updateElementBarycenters", 1, 4, 4, 2); __PYX_ERR(0, 539, __pyx_L3_error)
8533 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nElements)) != 0)) kw_args--;
8535 __Pyx_RaiseArgtupleInvalid(
"updateElementBarycenters", 1, 4, 4, 3); __PYX_ERR(0, 539, __pyx_L3_error)
8538 if (unlikely(kw_args > 0)) {
8539 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"updateElementBarycenters") < 0)) __PYX_ERR(0, 539, __pyx_L3_error)
8541 }
else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
8542 goto __pyx_L5_argtuple_error;
8544 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8545 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8546 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8547 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8549 __pyx_v_elementBarycentersArray_ = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementBarycentersArray_.memview)) __PYX_ERR(0, 539, __pyx_L3_error)
8550 __pyx_v_elementNodesArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_elementNodesArray.memview)) __PYX_ERR(0, 540, __pyx_L3_error)
8551 __pyx_v_nodeArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeArray.memview)) __PYX_ERR(0, 541, __pyx_L3_error)
8552 __pyx_v_nElements = __Pyx_PyInt_As_int(values[3]);
if (unlikely((__pyx_v_nElements == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 542, __pyx_L3_error)
8554 goto __pyx_L4_argument_unpacking_done;
8555 __pyx_L5_argtuple_error:;
8556 __Pyx_RaiseArgtupleInvalid(
"updateElementBarycenters", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 539, __pyx_L3_error)
8558 __Pyx_AddTraceback(
"mprans.MeshSmoothing.updateElementBarycenters", __pyx_clineno, __pyx_lineno, __pyx_filename);
8559 __Pyx_RefNannyFinishContext();
8561 __pyx_L4_argument_unpacking_done:;
8562 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_48updateElementBarycenters(__pyx_self, __pyx_v_elementBarycentersArray_, __pyx_v_elementNodesArray, __pyx_v_nodeArray, __pyx_v_nElements);
8565 __Pyx_RefNannyFinishContext();
8569 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_48updateElementBarycenters(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_elementBarycentersArray_, __Pyx_memviewslice __pyx_v_elementNodesArray, __Pyx_memviewslice __pyx_v_nodeArray,
int __pyx_v_nElements) {
8570 PyObject *__pyx_r = NULL;
8571 __Pyx_RefNannyDeclarations
8572 __Pyx_RefNannySetupContext(
"updateElementBarycenters", 0);
8581 __pyx_f_6mprans_13MeshSmoothing_cyUpdateElementBarycenters(__pyx_v_elementBarycentersArray_, __pyx_v_elementNodesArray, __pyx_v_nodeArray, __pyx_v_nElements);
8592 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8593 __PYX_XDEC_MEMVIEW(&__pyx_v_elementBarycentersArray_, 1);
8594 __PYX_XDEC_MEMVIEW(&__pyx_v_elementNodesArray, 1);
8595 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray, 1);
8596 __Pyx_XGIVEREF(__pyx_r);
8597 __Pyx_RefNannyFinishContext();
8610 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_51getCornerNodesTriangle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
8611 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_51getCornerNodesTriangle = {
"getCornerNodesTriangle", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_51getCornerNodesTriangle, METH_VARARGS|METH_KEYWORDS, 0};
8612 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_51getCornerNodesTriangle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
8613 __Pyx_memviewslice __pyx_v_nodeArray = { 0, 0, { 0 }, { 0 }, { 0 } };
8614 __Pyx_memviewslice __pyx_v_nodeStarArray = { 0, 0, { 0 }, { 0 }, { 0 } };
8615 __Pyx_memviewslice __pyx_v_nodeStarOffsets = { 0, 0, { 0 }, { 0 }, { 0 } };
8616 __Pyx_memviewslice __pyx_v_nodeMaterialTypes = { 0, 0, { 0 }, { 0 }, { 0 } };
8618 PyObject *__pyx_r = 0;
8619 __Pyx_RefNannyDeclarations
8620 __Pyx_RefNannySetupContext(
"getCornerNodesTriangle (wrapper)", 0);
8622 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nodeArray_2,&__pyx_n_s_nodeStarArray,&__pyx_n_s_nodeStarOffsets,&__pyx_n_s_nodeMaterialTypes,&__pyx_n_s_nNodes,0};
8623 PyObject* values[5] = {0,0,0,0,0};
8624 if (unlikely(__pyx_kwds)) {
8626 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
8628 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
8630 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8632 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8634 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8636 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8639 default:
goto __pyx_L5_argtuple_error;
8641 kw_args = PyDict_Size(__pyx_kwds);
8644 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeArray_2)) != 0)) kw_args--;
8645 else goto __pyx_L5_argtuple_error;
8648 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeStarArray)) != 0)) kw_args--;
8650 __Pyx_RaiseArgtupleInvalid(
"getCornerNodesTriangle", 1, 5, 5, 1); __PYX_ERR(0, 548, __pyx_L3_error)
8654 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeStarOffsets)) != 0)) kw_args--;
8656 __Pyx_RaiseArgtupleInvalid(
"getCornerNodesTriangle", 1, 5, 5, 2); __PYX_ERR(0, 548, __pyx_L3_error)
8660 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeMaterialTypes)) != 0)) kw_args--;
8662 __Pyx_RaiseArgtupleInvalid(
"getCornerNodesTriangle", 1, 5, 5, 3); __PYX_ERR(0, 548, __pyx_L3_error)
8666 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nNodes)) != 0)) kw_args--;
8668 __Pyx_RaiseArgtupleInvalid(
"getCornerNodesTriangle", 1, 5, 5, 4); __PYX_ERR(0, 548, __pyx_L3_error)
8671 if (unlikely(kw_args > 0)) {
8672 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"getCornerNodesTriangle") < 0)) __PYX_ERR(0, 548, __pyx_L3_error)
8674 }
else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
8675 goto __pyx_L5_argtuple_error;
8677 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8678 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8679 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8680 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8681 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
8683 __pyx_v_nodeArray = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeArray.memview)) __PYX_ERR(0, 548, __pyx_L3_error)
8684 __pyx_v_nodeStarArray = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeStarArray.memview)) __PYX_ERR(0, 549, __pyx_L3_error)
8685 __pyx_v_nodeStarOffsets = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeStarOffsets.memview)) __PYX_ERR(0, 550, __pyx_L3_error)
8686 __pyx_v_nodeMaterialTypes = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[3], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeMaterialTypes.memview)) __PYX_ERR(0, 551, __pyx_L3_error)
8687 __pyx_v_nNodes = __Pyx_PyInt_As_int(values[4]);
if (unlikely((__pyx_v_nNodes == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 552, __pyx_L3_error)
8689 goto __pyx_L4_argument_unpacking_done;
8690 __pyx_L5_argtuple_error:;
8691 __Pyx_RaiseArgtupleInvalid(
"getCornerNodesTriangle", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 548, __pyx_L3_error)
8693 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getCornerNodesTriangle", __pyx_clineno, __pyx_lineno, __pyx_filename);
8694 __Pyx_RefNannyFinishContext();
8696 __pyx_L4_argument_unpacking_done:;
8697 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_50getCornerNodesTriangle(__pyx_self, __pyx_v_nodeArray, __pyx_v_nodeStarArray, __pyx_v_nodeStarOffsets, __pyx_v_nodeMaterialTypes, __pyx_v_nNodes);
8700 __Pyx_RefNannyFinishContext();
8704 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_50getCornerNodesTriangle(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_nodeStarArray, __Pyx_memviewslice __pyx_v_nodeStarOffsets, __Pyx_memviewslice __pyx_v_nodeMaterialTypes,
int __pyx_v_nNodes) {
8705 PyObject *__pyx_r = NULL;
8706 __Pyx_RefNannyDeclarations
8707 PyObject *__pyx_t_1 = NULL;
8708 __Pyx_RefNannySetupContext(
"getCornerNodesTriangle", 0);
8717 __Pyx_XDECREF(__pyx_r);
8726 __pyx_t_1 = ((PyObject *)__pyx_f_6mprans_13MeshSmoothing_cyGetCornerNodesTriangle(__pyx_v_nodeArray, __pyx_v_nodeStarArray, __pyx_v_nodeStarOffsets, __pyx_v_nodeMaterialTypes, __pyx_v_nNodes));
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 553, __pyx_L1_error)
8727 __Pyx_GOTREF(__pyx_t_1);
8728 __pyx_r = __pyx_t_1;
8742 __Pyx_XDECREF(__pyx_t_1);
8743 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getCornerNodesTriangle", __pyx_clineno, __pyx_lineno, __pyx_filename);
8746 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray, 1);
8747 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeStarArray, 1);
8748 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeStarOffsets, 1);
8749 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeMaterialTypes, 1);
8750 __Pyx_XGIVEREF(__pyx_r);
8751 __Pyx_RefNannyFinishContext();
8764 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_53getNonOwnedNodeValues(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
8765 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_53getNonOwnedNodeValues = {
"getNonOwnedNodeValues", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_53getNonOwnedNodeValues, METH_VARARGS|METH_KEYWORDS, 0};
8766 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_53getNonOwnedNodeValues(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
8767 PyObject *__pyx_v_args_ = 0;
8768 int __pyx_v_nNodes_owned;
8769 int __pyx_v_nNodes_global;
8770 __Pyx_memviewslice __pyx_v_nodeNumbering_subdomain2global = { 0, 0, { 0 }, { 0 }, { 0 } };
8771 __Pyx_memviewslice __pyx_v_nodeOffsets_subdomain_owned = { 0, 0, { 0 }, { 0 }, { 0 } };
8772 PyObject *__pyx_r = 0;
8773 __Pyx_RefNannyDeclarations
8774 __Pyx_RefNannySetupContext(
"getNonOwnedNodeValues (wrapper)", 0);
8776 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_args,&__pyx_n_s_nNodes_owned,&__pyx_n_s_nNodes_global,&__pyx_n_s_nodeNumbering_subdomain2global,&__pyx_n_s_nodeOffsets_subdomain_owned,0};
8777 PyObject* values[5] = {0,0,0,0,0};
8778 if (unlikely(__pyx_kwds)) {
8780 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
8782 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
8784 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8786 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8788 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8790 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8793 default:
goto __pyx_L5_argtuple_error;
8795 kw_args = PyDict_Size(__pyx_kwds);
8798 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
8799 else goto __pyx_L5_argtuple_error;
8802 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nNodes_owned)) != 0)) kw_args--;
8804 __Pyx_RaiseArgtupleInvalid(
"getNonOwnedNodeValues", 1, 5, 5, 1); __PYX_ERR(0, 559, __pyx_L3_error)
8808 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nNodes_global)) != 0)) kw_args--;
8810 __Pyx_RaiseArgtupleInvalid(
"getNonOwnedNodeValues", 1, 5, 5, 2); __PYX_ERR(0, 559, __pyx_L3_error)
8814 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeNumbering_subdomain2global)) != 0)) kw_args--;
8816 __Pyx_RaiseArgtupleInvalid(
"getNonOwnedNodeValues", 1, 5, 5, 3); __PYX_ERR(0, 559, __pyx_L3_error)
8820 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeOffsets_subdomain_owned)) != 0)) kw_args--;
8822 __Pyx_RaiseArgtupleInvalid(
"getNonOwnedNodeValues", 1, 5, 5, 4); __PYX_ERR(0, 559, __pyx_L3_error)
8825 if (unlikely(kw_args > 0)) {
8826 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"getNonOwnedNodeValues") < 0)) __PYX_ERR(0, 559, __pyx_L3_error)
8828 }
else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
8829 goto __pyx_L5_argtuple_error;
8831 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8832 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
8833 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
8834 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
8835 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
8837 __pyx_v_args_ = values[0];
8838 __pyx_v_nNodes_owned = __Pyx_PyInt_As_int(values[1]);
if (unlikely((__pyx_v_nNodes_owned == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 560, __pyx_L3_error)
8839 __pyx_v_nNodes_global = __Pyx_PyInt_As_int(values[2]);
if (unlikely((__pyx_v_nNodes_global == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 561, __pyx_L3_error)
8840 __pyx_v_nodeNumbering_subdomain2global = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[3], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeNumbering_subdomain2global.memview)) __PYX_ERR(0, 562, __pyx_L3_error)
8841 __pyx_v_nodeOffsets_subdomain_owned = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[4], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeOffsets_subdomain_owned.memview)) __PYX_ERR(0, 563, __pyx_L3_error)
8843 goto __pyx_L4_argument_unpacking_done;
8844 __pyx_L5_argtuple_error:;
8845 __Pyx_RaiseArgtupleInvalid(
"getNonOwnedNodeValues", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 559, __pyx_L3_error)
8847 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getNonOwnedNodeValues", __pyx_clineno, __pyx_lineno, __pyx_filename);
8848 __Pyx_RefNannyFinishContext();
8850 __pyx_L4_argument_unpacking_done:;
8851 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_52getNonOwnedNodeValues(__pyx_self, __pyx_v_args_, __pyx_v_nNodes_owned, __pyx_v_nNodes_global, __pyx_v_nodeNumbering_subdomain2global, __pyx_v_nodeOffsets_subdomain_owned);
8854 __Pyx_RefNannyFinishContext();
8857 static PyObject *__pyx_gb_6mprans_13MeshSmoothing_21getNonOwnedNodeValues_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value);
8867 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_21getNonOwnedNodeValues_genexpr(PyObject *__pyx_self) {
8868 struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr *__pyx_cur_scope;
8869 PyObject *__pyx_r = NULL;
8870 __Pyx_RefNannyDeclarations
8871 __Pyx_RefNannySetupContext(
"genexpr", 0);
8872 __pyx_cur_scope = (
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr *)__pyx_tp_new_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr(__pyx_ptype_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr, __pyx_empty_tuple, NULL);
8873 if (unlikely(!__pyx_cur_scope)) {
8874 __pyx_cur_scope = ((
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr *)Py_None);
8875 __Pyx_INCREF(Py_None);
8876 __PYX_ERR(0, 625, __pyx_L1_error)
8878 __Pyx_GOTREF(__pyx_cur_scope);
8880 __pyx_cur_scope->__pyx_outer_scope = (
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues *) __pyx_self;
8881 __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
8882 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
8884 __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6mprans_13MeshSmoothing_21getNonOwnedNodeValues_2generator, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_getNonOwnedNodeValues_locals_gen, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!gen)) __PYX_ERR(0, 625, __pyx_L1_error)
8885 __Pyx_DECREF(__pyx_cur_scope);
8886 __Pyx_RefNannyFinishContext();
8887 return (PyObject *) gen;
8892 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getNonOwnedNodeValues.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
8894 __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
8895 __Pyx_XGIVEREF(__pyx_r);
8896 __Pyx_RefNannyFinishContext();
8900 static PyObject *__pyx_gb_6mprans_13MeshSmoothing_21getNonOwnedNodeValues_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value)
8902 struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr *__pyx_cur_scope = ((
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr *)__pyx_generator->closure);
8903 PyObject *__pyx_r = NULL;
8907 __Pyx_RefNannyDeclarations
8908 __Pyx_RefNannySetupContext(
"genexpr", 0);
8909 switch (__pyx_generator->resume_label) {
8910 case 0:
goto __pyx_L3_first_run;
8911 case 1:
goto __pyx_L6_resume_from_yield;
8913 __Pyx_RefNannyFinishContext();
8916 __pyx_L3_first_run:;
8917 if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 625, __pyx_L1_error)
8918 __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_comm_size;
8919 __pyx_t_2 = __pyx_t_1;
8920 for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
8921 __pyx_cur_scope->__pyx_v_i = __pyx_t_3;
8922 __Pyx_INCREF(__pyx_int_1);
8923 __pyx_r = __pyx_int_1;
8924 __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
8925 __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
8926 __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
8927 __Pyx_XGIVEREF(__pyx_r);
8928 __Pyx_RefNannyFinishContext();
8929 __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
8931 __pyx_generator->resume_label = 1;
8933 __pyx_L6_resume_from_yield:;
8934 __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
8935 __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
8936 __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
8937 if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 625, __pyx_L1_error)
8939 CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
8942 PyErr_SetNone(PyExc_StopIteration);
8945 __Pyx_AddTraceback(
"genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
8947 __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
8948 #if !CYTHON_USE_EXC_INFO_STACK 8949 __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
8951 __pyx_generator->resume_label = -1;
8952 __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
8953 __Pyx_RefNannyFinishContext();
8956 static PyObject *__pyx_gb_6mprans_13MeshSmoothing_21getNonOwnedNodeValues_5generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value);
8966 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_21getNonOwnedNodeValues_3genexpr(PyObject *__pyx_self) {
8967 struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr *__pyx_cur_scope;
8968 PyObject *__pyx_r = NULL;
8969 __Pyx_RefNannyDeclarations
8970 __Pyx_RefNannySetupContext(
"genexpr", 0);
8971 __pyx_cur_scope = (
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr *)__pyx_tp_new_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr(__pyx_ptype_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr, __pyx_empty_tuple, NULL);
8972 if (unlikely(!__pyx_cur_scope)) {
8973 __pyx_cur_scope = ((
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr *)Py_None);
8974 __Pyx_INCREF(Py_None);
8975 __PYX_ERR(0, 626, __pyx_L1_error)
8977 __Pyx_GOTREF(__pyx_cur_scope);
8979 __pyx_cur_scope->__pyx_outer_scope = (
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues *) __pyx_self;
8980 __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
8981 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
8983 __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6mprans_13MeshSmoothing_21getNonOwnedNodeValues_5generator1, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_getNonOwnedNodeValues_locals_gen, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!gen)) __PYX_ERR(0, 626, __pyx_L1_error)
8984 __Pyx_DECREF(__pyx_cur_scope);
8985 __Pyx_RefNannyFinishContext();
8986 return (PyObject *) gen;
8991 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getNonOwnedNodeValues.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
8993 __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
8994 __Pyx_XGIVEREF(__pyx_r);
8995 __Pyx_RefNannyFinishContext();
8999 static PyObject *__pyx_gb_6mprans_13MeshSmoothing_21getNonOwnedNodeValues_5generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value)
9001 struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr *__pyx_cur_scope = ((
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr *)__pyx_generator->closure);
9002 PyObject *__pyx_r = NULL;
9006 PyObject *__pyx_t_4 = NULL;
9007 __Pyx_RefNannyDeclarations
9008 __Pyx_RefNannySetupContext(
"genexpr", 0);
9009 switch (__pyx_generator->resume_label) {
9010 case 0:
goto __pyx_L3_first_run;
9011 case 1:
goto __pyx_L6_resume_from_yield;
9013 __Pyx_RefNannyFinishContext();
9016 __pyx_L3_first_run:;
9017 if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 626, __pyx_L1_error)
9018 __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_comm_size;
9019 __pyx_t_2 = __pyx_t_1;
9020 for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
9021 __pyx_cur_scope->__pyx_v_i = __pyx_t_3;
9022 __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 626, __pyx_L1_error)
9023 __Pyx_GOTREF(__pyx_t_4);
9024 __pyx_r = __pyx_t_4;
9026 __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
9027 __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
9028 __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
9029 __Pyx_XGIVEREF(__pyx_r);
9030 __Pyx_RefNannyFinishContext();
9031 __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
9033 __pyx_generator->resume_label = 1;
9035 __pyx_L6_resume_from_yield:;
9036 __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
9037 __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
9038 __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
9039 if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 626, __pyx_L1_error)
9041 CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
9044 PyErr_SetNone(PyExc_StopIteration);
9047 __Pyx_XDECREF(__pyx_t_4);
9048 __Pyx_AddTraceback(
"genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
9050 __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
9051 #if !CYTHON_USE_EXC_INFO_STACK 9052 __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
9054 __pyx_generator->resume_label = -1;
9055 __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
9056 __Pyx_RefNannyFinishContext();
9068 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_52getNonOwnedNodeValues(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_args_,
int __pyx_v_nNodes_owned,
int __pyx_v_nNodes_global, __Pyx_memviewslice __pyx_v_nodeNumbering_subdomain2global, __Pyx_memviewslice __pyx_v_nodeOffsets_subdomain_owned) {
9069 struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues *__pyx_cur_scope;
9070 PyObject *__pyx_v_Comm = NULL;
9071 PyObject *__pyx_v_comm = 0;
9072 int __pyx_v_my_rank;
9073 PyObject *__pyx_v_arg_2rank = 0;
9074 PyObject *__pyx_v_nodes_2rank = 0;
9075 __Pyx_memviewslice __pyx_v_result = { 0, 0, { 0 }, { 0 }, { 0 } };
9076 __Pyx_memviewslice __pyx_v_counts_in = { 0, 0, { 0 }, { 0 }, { 0 } };
9077 __Pyx_memviewslice __pyx_v_displacements_in = { 0, 0, { 0 }, { 0 }, { 0 } };
9078 __Pyx_memviewslice __pyx_v_counts_out = { 0, 0, { 0 }, { 0 }, { 0 } };
9079 __Pyx_memviewslice __pyx_v_displacements_out = { 0, 0, { 0 }, { 0 }, { 0 } };
9080 __Pyx_memviewslice __pyx_v_arg_shape = { 0, 0, { 0 }, { 0 }, { 0 } };
9081 __Pyx_memviewslice __pyx_v_arg_shape_copy = { 0, 0, { 0 }, { 0 }, { 0 } };
9082 int __pyx_v_arg_shape_len;
9083 int __pyx_v_shape_factor;
9086 int __pyx_v_rank_recv;
9090 int __pyx_v_node_new_rank;
9091 int __pyx_v_new_rank;
9093 __Pyx_memviewslice __pyx_v_nodes_2rank_values = { 0, 0, { 0 }, { 0 }, { 0 } };
9094 __Pyx_memviewslice __pyx_v_nodes_2doArray = { 0, 0, { 0 }, { 0 }, { 0 } };
9097 Py_ssize_t __pyx_v_nodes_2rank_len;
9098 PyObject *__pyx_v_array_size = NULL;
9099 PyObject *__pyx_v_my_size = NULL;
9100 PyObject *__pyx_v_arg_2rank_values = NULL;
9101 PyObject *__pyx_v_arg_2doArray = NULL;
9102 PyObject *__pyx_v_datatype = NULL;
9103 PyObject *__pyx_r = NULL;
9104 __Pyx_RefNannyDeclarations
9105 PyObject *__pyx_t_1 = NULL;
9106 PyObject *__pyx_t_2 = NULL;
9107 PyObject *__pyx_t_3 = NULL;
9108 PyObject *__pyx_t_4 = NULL;
9109 PyObject *__pyx_t_5 = NULL;
9110 __Pyx_memviewslice __pyx_t_6 = { 0, 0, { 0 }, { 0 }, { 0 } };
9116 Py_ssize_t __pyx_t_12;
9118 Py_ssize_t __pyx_t_14;
9119 Py_ssize_t __pyx_t_15;
9121 PyObject *__pyx_t_17 = NULL;
9122 Py_ssize_t __pyx_t_18;
9123 Py_ssize_t __pyx_t_19;
9124 Py_ssize_t __pyx_t_20;
9125 Py_ssize_t __pyx_t_21;
9128 Py_ssize_t __pyx_t_24;
9129 Py_ssize_t __pyx_t_25;
9130 Py_ssize_t __pyx_t_26;
9131 Py_ssize_t __pyx_t_27;
9132 PyObject *__pyx_t_28 = NULL;
9133 Py_ssize_t __pyx_t_29;
9134 Py_ssize_t __pyx_t_30;
9135 Py_ssize_t __pyx_t_31;
9136 Py_ssize_t __pyx_t_32;
9137 Py_ssize_t __pyx_t_33;
9138 Py_ssize_t __pyx_t_34;
9142 Py_ssize_t __pyx_t_38;
9143 Py_ssize_t __pyx_t_39;
9144 Py_ssize_t __pyx_t_40;
9145 Py_ssize_t __pyx_t_41;
9146 __Pyx_RefNannySetupContext(
"getNonOwnedNodeValues", 0);
9147 __pyx_cur_scope = (
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues *)__pyx_tp_new_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues(__pyx_ptype_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues, __pyx_empty_tuple, NULL);
9148 if (unlikely(!__pyx_cur_scope)) {
9149 __pyx_cur_scope = ((
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues *)Py_None);
9150 __Pyx_INCREF(Py_None);
9151 __PYX_ERR(0, 559, __pyx_L1_error)
9153 __Pyx_GOTREF(__pyx_cur_scope);
9163 __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 564, __pyx_L1_error)
9164 __Pyx_GOTREF(__pyx_t_1);
9165 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 564, __pyx_L1_error)
9166 __Pyx_GOTREF(__pyx_t_2);
9167 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9168 __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_nodeNumbering_subdomain2global, 1, (PyObject *(*)(
char *)) __pyx_memview_get_int, (
int (*)(
char *, PyObject *)) __pyx_memview_set_int, 0);;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 564, __pyx_L1_error)
9169 __Pyx_GOTREF(__pyx_t_1);
9170 __pyx_t_3 = PyTuple_New(1);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 564, __pyx_L1_error)
9171 __Pyx_GOTREF(__pyx_t_3);
9172 __Pyx_GIVEREF(__pyx_t_1);
9173 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
9175 __pyx_t_1 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 564, __pyx_L1_error)
9176 __Pyx_GOTREF(__pyx_t_1);
9177 __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 564, __pyx_L1_error)
9178 __Pyx_GOTREF(__pyx_t_4);
9179 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_int32);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 564, __pyx_L1_error)
9180 __Pyx_GOTREF(__pyx_t_5);
9181 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9182 if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 564, __pyx_L1_error)
9183 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9184 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_1);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 564, __pyx_L1_error)
9185 __Pyx_GOTREF(__pyx_t_5);
9186 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9187 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9188 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9189 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(__pyx_t_5, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 564, __pyx_L1_error)
9190 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9191 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeNumbering_subdomain2global, 1);
9192 __pyx_v_nodeNumbering_subdomain2global = __pyx_t_6;
9193 __pyx_t_6.memview = NULL;
9194 __pyx_t_6.data = NULL;
9203 __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 565, __pyx_L1_error)
9204 __Pyx_GOTREF(__pyx_t_5);
9205 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_array);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 565, __pyx_L1_error)
9206 __Pyx_GOTREF(__pyx_t_1);
9207 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9208 __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_nodeOffsets_subdomain_owned, 1, (PyObject *(*)(
char *)) __pyx_memview_get_int, (
int (*)(
char *, PyObject *)) __pyx_memview_set_int, 0);;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 565, __pyx_L1_error)
9209 __Pyx_GOTREF(__pyx_t_5);
9210 __pyx_t_3 = PyTuple_New(1);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 565, __pyx_L1_error)
9211 __Pyx_GOTREF(__pyx_t_3);
9212 __Pyx_GIVEREF(__pyx_t_5);
9213 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
9215 __pyx_t_5 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 565, __pyx_L1_error)
9216 __Pyx_GOTREF(__pyx_t_5);
9217 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 565, __pyx_L1_error)
9218 __Pyx_GOTREF(__pyx_t_2);
9219 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_int32);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 565, __pyx_L1_error)
9220 __Pyx_GOTREF(__pyx_t_4);
9221 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9222 if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_4) < 0) __PYX_ERR(0, 565, __pyx_L1_error)
9223 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9224 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_5);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 565, __pyx_L1_error)
9225 __Pyx_GOTREF(__pyx_t_4);
9226 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9227 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9228 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9229 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(__pyx_t_4, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 565, __pyx_L1_error)
9230 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9231 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeOffsets_subdomain_owned, 1);
9232 __pyx_v_nodeOffsets_subdomain_owned = __pyx_t_6;
9233 __pyx_t_6.memview = NULL;
9234 __pyx_t_6.data = NULL;
9243 __pyx_t_4 = PyList_New(1);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 566, __pyx_L1_error)
9244 __Pyx_GOTREF(__pyx_t_4);
9245 __Pyx_INCREF(__pyx_n_s_Comm);
9246 __Pyx_GIVEREF(__pyx_n_s_Comm);
9247 PyList_SET_ITEM(__pyx_t_4, 0, __pyx_n_s_Comm);
9248 __pyx_t_5 = __Pyx_Import(__pyx_n_s_proteus, __pyx_t_4, -1);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 566, __pyx_L1_error)
9249 __Pyx_GOTREF(__pyx_t_5);
9250 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9251 __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_5, __pyx_n_s_Comm);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 566, __pyx_L1_error)
9252 __Pyx_GOTREF(__pyx_t_4);
9253 __Pyx_INCREF(__pyx_t_4);
9254 __pyx_v_Comm = __pyx_t_4;
9255 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9256 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9265 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_Comm, __pyx_n_s_get);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 567, __pyx_L1_error)
9266 __Pyx_GOTREF(__pyx_t_3);
9268 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9269 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
9270 if (likely(__pyx_t_1)) {
9271 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_3);
9272 __Pyx_INCREF(__pyx_t_1);
9273 __Pyx_INCREF(
function);
9274 __Pyx_DECREF_SET(__pyx_t_3,
function);
9277 __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
9278 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
9279 if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 567, __pyx_L1_error)
9280 __Pyx_GOTREF(__pyx_t_4);
9281 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9282 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_comm);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 567, __pyx_L1_error)
9283 __Pyx_GOTREF(__pyx_t_3);
9284 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9285 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_tompi4py);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 567, __pyx_L1_error)
9286 __Pyx_GOTREF(__pyx_t_4);
9287 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9289 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
9290 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
9291 if (likely(__pyx_t_3)) {
9292 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_4);
9293 __Pyx_INCREF(__pyx_t_3);
9294 __Pyx_INCREF(
function);
9295 __Pyx_DECREF_SET(__pyx_t_4,
function);
9298 __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
9299 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
9300 if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 567, __pyx_L1_error)
9301 __Pyx_GOTREF(__pyx_t_5);
9302 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9303 __pyx_v_comm = __pyx_t_5;
9313 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_comm, __pyx_n_s_size);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 568, __pyx_L1_error)
9314 __Pyx_GOTREF(__pyx_t_5);
9315 __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_5);
if (unlikely((__pyx_t_7 == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 568, __pyx_L1_error)
9316 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9317 __pyx_cur_scope->__pyx_v_comm_size = __pyx_t_7;
9326 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_comm, __pyx_n_s_rank);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 569, __pyx_L1_error)
9327 __Pyx_GOTREF(__pyx_t_5);
9328 __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_5);
if (unlikely((__pyx_t_7 == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 569, __pyx_L1_error)
9329 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9330 __pyx_v_my_rank = __pyx_t_7;
9339 __pyx_t_5 = __Pyx_PyDict_NewPresized(0);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 570, __pyx_L1_error)
9340 __Pyx_GOTREF(__pyx_t_5);
9341 __pyx_v_arg_2rank = ((PyObject*)__pyx_t_5);
9351 __pyx_t_5 = __Pyx_PyDict_NewPresized(0);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 571, __pyx_L1_error)
9352 __Pyx_GOTREF(__pyx_t_5);
9353 __pyx_v_nodes_2rank = ((PyObject*)__pyx_t_5);
9363 __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 574, __pyx_L1_error)
9364 __Pyx_GOTREF(__pyx_t_5);
9365 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 574, __pyx_L1_error)
9366 __Pyx_GOTREF(__pyx_t_4);
9367 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9368 __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_comm_size);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 574, __pyx_L1_error)
9369 __Pyx_GOTREF(__pyx_t_5);
9370 __pyx_t_3 = PyTuple_New(1);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 574, __pyx_L1_error)
9371 __Pyx_GOTREF(__pyx_t_3);
9372 __Pyx_GIVEREF(__pyx_t_5);
9373 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
9375 __pyx_t_5 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 574, __pyx_L1_error)
9376 __Pyx_GOTREF(__pyx_t_5);
9377 __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 574, __pyx_L1_error)
9378 __Pyx_GOTREF(__pyx_t_1);
9379 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int32);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 574, __pyx_L1_error)
9380 __Pyx_GOTREF(__pyx_t_2);
9381 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9382 if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 574, __pyx_L1_error)
9383 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9384 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_5);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 574, __pyx_L1_error)
9385 __Pyx_GOTREF(__pyx_t_2);
9386 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9387 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9388 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9389 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(__pyx_t_2, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 574, __pyx_L1_error)
9390 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9391 __pyx_v_counts_in = __pyx_t_6;
9392 __pyx_t_6.memview = NULL;
9393 __pyx_t_6.data = NULL;
9402 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 575, __pyx_L1_error)
9403 __Pyx_GOTREF(__pyx_t_2);
9404 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 575, __pyx_L1_error)
9405 __Pyx_GOTREF(__pyx_t_5);
9406 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9407 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_comm_size);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 575, __pyx_L1_error)
9408 __Pyx_GOTREF(__pyx_t_2);
9409 __pyx_t_3 = PyTuple_New(1);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 575, __pyx_L1_error)
9410 __Pyx_GOTREF(__pyx_t_3);
9411 __Pyx_GIVEREF(__pyx_t_2);
9412 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
9414 __pyx_t_2 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 575, __pyx_L1_error)
9415 __Pyx_GOTREF(__pyx_t_2);
9416 __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 575, __pyx_L1_error)
9417 __Pyx_GOTREF(__pyx_t_4);
9418 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_int32);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 575, __pyx_L1_error)
9419 __Pyx_GOTREF(__pyx_t_1);
9420 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9421 if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_1) < 0) __PYX_ERR(0, 575, __pyx_L1_error)
9422 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9423 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_2);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 575, __pyx_L1_error)
9424 __Pyx_GOTREF(__pyx_t_1);
9425 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9426 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9427 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9428 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 575, __pyx_L1_error)
9429 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9430 __pyx_v_displacements_in = __pyx_t_6;
9431 __pyx_t_6.memview = NULL;
9432 __pyx_t_6.data = NULL;
9441 __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 577, __pyx_L1_error)
9442 __Pyx_GOTREF(__pyx_t_1);
9443 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 577, __pyx_L1_error)
9444 __Pyx_GOTREF(__pyx_t_2);
9445 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9446 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_comm_size);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 577, __pyx_L1_error)
9447 __Pyx_GOTREF(__pyx_t_1);
9448 __pyx_t_3 = PyTuple_New(1);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 577, __pyx_L1_error)
9449 __Pyx_GOTREF(__pyx_t_3);
9450 __Pyx_GIVEREF(__pyx_t_1);
9451 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
9453 __pyx_t_1 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 577, __pyx_L1_error)
9454 __Pyx_GOTREF(__pyx_t_1);
9455 __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 577, __pyx_L1_error)
9456 __Pyx_GOTREF(__pyx_t_5);
9457 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int32);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 577, __pyx_L1_error)
9458 __Pyx_GOTREF(__pyx_t_4);
9459 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9460 if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_4) < 0) __PYX_ERR(0, 577, __pyx_L1_error)
9461 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9462 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_1);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 577, __pyx_L1_error)
9463 __Pyx_GOTREF(__pyx_t_4);
9464 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9465 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9466 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9467 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(__pyx_t_4, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 577, __pyx_L1_error)
9468 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9469 __pyx_v_counts_out = __pyx_t_6;
9470 __pyx_t_6.memview = NULL;
9471 __pyx_t_6.data = NULL;
9480 __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 578, __pyx_L1_error)
9481 __Pyx_GOTREF(__pyx_t_4);
9482 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 578, __pyx_L1_error)
9483 __Pyx_GOTREF(__pyx_t_1);
9484 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9485 __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_comm_size);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 578, __pyx_L1_error)
9486 __Pyx_GOTREF(__pyx_t_4);
9487 __pyx_t_3 = PyTuple_New(1);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 578, __pyx_L1_error)
9488 __Pyx_GOTREF(__pyx_t_3);
9489 __Pyx_GIVEREF(__pyx_t_4);
9490 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
9492 __pyx_t_4 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 578, __pyx_L1_error)
9493 __Pyx_GOTREF(__pyx_t_4);
9494 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 578, __pyx_L1_error)
9495 __Pyx_GOTREF(__pyx_t_2);
9496 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_int32);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 578, __pyx_L1_error)
9497 __Pyx_GOTREF(__pyx_t_5);
9498 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9499 if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 578, __pyx_L1_error)
9500 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9501 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 578, __pyx_L1_error)
9502 __Pyx_GOTREF(__pyx_t_5);
9503 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9504 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9505 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9506 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(__pyx_t_5, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 578, __pyx_L1_error)
9507 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9508 __pyx_v_displacements_out = __pyx_t_6;
9509 __pyx_t_6.memview = NULL;
9510 __pyx_t_6.data = NULL;
9519 __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 580, __pyx_L1_error)
9520 __Pyx_GOTREF(__pyx_t_5);
9521 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_array);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 580, __pyx_L1_error)
9522 __Pyx_GOTREF(__pyx_t_4);
9523 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9524 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_args_, __pyx_n_s_shape);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 580, __pyx_L1_error)
9525 __Pyx_GOTREF(__pyx_t_5);
9526 __pyx_t_3 = PyTuple_New(1);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 580, __pyx_L1_error)
9527 __Pyx_GOTREF(__pyx_t_3);
9528 __Pyx_GIVEREF(__pyx_t_5);
9529 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
9531 __pyx_t_5 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 580, __pyx_L1_error)
9532 __Pyx_GOTREF(__pyx_t_5);
9533 __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 580, __pyx_L1_error)
9534 __Pyx_GOTREF(__pyx_t_1);
9535 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int32);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 580, __pyx_L1_error)
9536 __Pyx_GOTREF(__pyx_t_2);
9537 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9538 if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 580, __pyx_L1_error)
9539 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9540 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_5);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 580, __pyx_L1_error)
9541 __Pyx_GOTREF(__pyx_t_2);
9542 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9543 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9544 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9545 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(__pyx_t_2, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 580, __pyx_L1_error)
9546 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9547 __pyx_v_arg_shape = __pyx_t_6;
9548 __pyx_t_6.memview = NULL;
9549 __pyx_t_6.data = NULL;
9558 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 581, __pyx_L1_error)
9559 __Pyx_GOTREF(__pyx_t_2);
9560 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 581, __pyx_L1_error)
9561 __Pyx_GOTREF(__pyx_t_5);
9562 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9563 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_args_, __pyx_n_s_shape);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 581, __pyx_L1_error)
9564 __Pyx_GOTREF(__pyx_t_2);
9565 __pyx_t_3 = PyTuple_New(1);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 581, __pyx_L1_error)
9566 __Pyx_GOTREF(__pyx_t_3);
9567 __Pyx_GIVEREF(__pyx_t_2);
9568 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
9570 __pyx_t_2 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 581, __pyx_L1_error)
9571 __Pyx_GOTREF(__pyx_t_2);
9572 __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 581, __pyx_L1_error)
9573 __Pyx_GOTREF(__pyx_t_4);
9574 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_int32);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 581, __pyx_L1_error)
9575 __Pyx_GOTREF(__pyx_t_1);
9576 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9577 if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_1) < 0) __PYX_ERR(0, 581, __pyx_L1_error)
9578 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9579 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_2);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 581, __pyx_L1_error)
9580 __Pyx_GOTREF(__pyx_t_1);
9581 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9582 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9583 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9584 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 581, __pyx_L1_error)
9585 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9586 __pyx_v_arg_shape_copy = __pyx_t_6;
9587 __pyx_t_6.memview = NULL;
9588 __pyx_t_6.data = NULL;
9597 __pyx_t_8 = __Pyx_MemoryView_Len(__pyx_v_arg_shape);
9598 __pyx_v_arg_shape_len = __pyx_t_8;
9607 __pyx_v_shape_factor = 1;
9625 __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 588, __pyx_L1_error)
9626 __Pyx_GOTREF(__pyx_t_1);
9627 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 588, __pyx_L1_error)
9628 __Pyx_GOTREF(__pyx_t_2);
9629 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9630 __pyx_t_1 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 588, __pyx_L1_error)
9631 __Pyx_GOTREF(__pyx_t_1);
9632 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 588, __pyx_L1_error)
9633 __Pyx_GOTREF(__pyx_t_3);
9634 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int32);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 588, __pyx_L1_error)
9635 __Pyx_GOTREF(__pyx_t_5);
9636 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9637 if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 588, __pyx_L1_error)
9638 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9639 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__3, __pyx_t_1);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 588, __pyx_L1_error)
9640 __Pyx_GOTREF(__pyx_t_5);
9641 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9642 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9643 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(__pyx_t_5, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 588, __pyx_L1_error)
9644 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9645 __pyx_v_nodes_2doArray = __pyx_t_6;
9646 __pyx_t_6.memview = NULL;
9647 __pyx_t_6.data = NULL;
9656 __pyx_t_9 = ((__pyx_v_arg_shape_len > 1) != 0);
9666 __pyx_t_7 = __pyx_v_arg_shape_len;
9667 __pyx_t_10 = __pyx_t_7;
9668 for (__pyx_t_11 = 1; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
9669 __pyx_v_i = __pyx_t_11;
9678 __pyx_t_12 = __pyx_v_i;
9679 if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_v_arg_shape.shape[0];
9680 __pyx_v_shape_factor = (__pyx_v_shape_factor * (*((
int *) ( (__pyx_v_arg_shape.data + __pyx_t_12 * __pyx_v_arg_shape.strides[0]) ))));
9699 __pyx_t_9 = ((__pyx_cur_scope->__pyx_v_comm_size > 1) != 0);
9709 __pyx_t_7 = __pyx_cur_scope->__pyx_v_comm_size;
9710 __pyx_t_10 = __pyx_t_7;
9711 for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_10; __pyx_t_13+=1) {
9712 __pyx_v_rank = __pyx_t_13;
9721 __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 594, __pyx_L1_error)
9722 __Pyx_GOTREF(__pyx_t_5);
9723 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 594, __pyx_L1_error)
9724 __Pyx_GOTREF(__pyx_t_1);
9725 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9726 __pyx_t_5 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 594, __pyx_L1_error)
9727 __Pyx_GOTREF(__pyx_t_5);
9728 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 594, __pyx_L1_error)
9729 __Pyx_GOTREF(__pyx_t_2);
9730 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_int32);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 594, __pyx_L1_error)
9731 __Pyx_GOTREF(__pyx_t_3);
9732 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9733 if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(0, 594, __pyx_L1_error)
9734 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9735 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__3, __pyx_t_5);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 594, __pyx_L1_error)
9736 __Pyx_GOTREF(__pyx_t_3);
9737 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9738 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9739 __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_rank);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 594, __pyx_L1_error)
9740 __Pyx_GOTREF(__pyx_t_5);
9741 if (unlikely(PyDict_SetItem(__pyx_v_nodes_2rank, __pyx_t_5, __pyx_t_3) < 0)) __PYX_ERR(0, 594, __pyx_L1_error)
9742 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9743 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9753 __pyx_t_7 = __pyx_v_nNodes_global;
9754 __pyx_t_10 = __pyx_t_7;
9755 for (__pyx_t_13 = __pyx_v_nNodes_owned; __pyx_t_13 < __pyx_t_10; __pyx_t_13+=1) {
9756 __pyx_v_node = __pyx_t_13;
9765 __pyx_t_6 = __pyx_f_6mprans_13MeshSmoothing_cyCheckOwnedVariable(__pyx_v_node, __pyx_v_my_rank, __pyx_v_nNodes_owned, __pyx_v_nodeNumbering_subdomain2global, __pyx_v_nodeOffsets_subdomain_owned);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 596, __pyx_L1_error)
9766 __PYX_XDEC_MEMVIEW(&__pyx_v_result, 1);
9767 __pyx_v_result = __pyx_t_6;
9768 __pyx_t_6.memview = NULL;
9769 __pyx_t_6.data = NULL;
9779 if (__pyx_t_14 < 0) __pyx_t_14 += __pyx_v_result.shape[0];
9780 __pyx_v_node_new_rank = (*((
int *) ( (__pyx_v_result.data + __pyx_t_14 * __pyx_v_result.strides[0]) )));
9790 if (__pyx_t_15 < 0) __pyx_t_15 += __pyx_v_result.shape[0];
9791 __pyx_v_new_rank = (*((
int *) ( (__pyx_v_result.data + __pyx_t_15 * __pyx_v_result.strides[0]) )));
9800 __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 603, __pyx_L1_error)
9801 __Pyx_GOTREF(__pyx_t_5);
9802 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_append);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 603, __pyx_L1_error)
9803 __Pyx_GOTREF(__pyx_t_1);
9804 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9805 __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_new_rank);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 603, __pyx_L1_error)
9806 __Pyx_GOTREF(__pyx_t_5);
9807 __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_nodes_2rank, __pyx_t_5);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 603, __pyx_L1_error)
9808 __Pyx_GOTREF(__pyx_t_2);
9809 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9810 __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_node_new_rank);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 603, __pyx_L1_error)
9811 __Pyx_GOTREF(__pyx_t_5);
9814 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
9815 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
9816 if (likely(__pyx_t_4)) {
9817 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_1);
9818 __Pyx_INCREF(__pyx_t_4);
9819 __Pyx_INCREF(
function);
9820 __Pyx_DECREF_SET(__pyx_t_1,
function);
9824 #if CYTHON_FAST_PYCALL 9825 if (PyFunction_Check(__pyx_t_1)) {
9826 PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_2, __pyx_t_5};
9827 __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_16, 2+__pyx_t_16);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 603, __pyx_L1_error)
9828 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
9829 __Pyx_GOTREF(__pyx_t_3);
9830 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9831 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9834 #if CYTHON_FAST_PYCCALL 9835 if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
9836 PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_2, __pyx_t_5};
9837 __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_16, 2+__pyx_t_16);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 603, __pyx_L1_error)
9838 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
9839 __Pyx_GOTREF(__pyx_t_3);
9840 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9841 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9845 __pyx_t_17 = PyTuple_New(2+__pyx_t_16);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 603, __pyx_L1_error)
9846 __Pyx_GOTREF(__pyx_t_17);
9848 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_4); __pyx_t_4 = NULL;
9850 __Pyx_GIVEREF(__pyx_t_2);
9851 PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_16, __pyx_t_2);
9852 __Pyx_GIVEREF(__pyx_t_5);
9853 PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_16, __pyx_t_5);
9856 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_17, NULL);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 603, __pyx_L1_error)
9857 __Pyx_GOTREF(__pyx_t_3);
9858 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
9860 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9861 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_new_rank);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 603, __pyx_L1_error)
9862 __Pyx_GOTREF(__pyx_t_1);
9863 if (unlikely(PyDict_SetItem(__pyx_v_nodes_2rank, __pyx_t_1, __pyx_t_3) < 0)) __PYX_ERR(0, 603, __pyx_L1_error)
9864 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9865 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9875 __pyx_t_7 = __pyx_cur_scope->__pyx_v_comm_size;
9876 __pyx_t_10 = __pyx_t_7;
9877 for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_10; __pyx_t_13+=1) {
9878 __pyx_v_rank_recv = __pyx_t_13;
9887 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_rank_recv);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 608, __pyx_L1_error)
9888 __Pyx_GOTREF(__pyx_t_1);
9889 __pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_nodes_2rank, __pyx_t_1);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 608, __pyx_L1_error)
9890 __Pyx_GOTREF(__pyx_t_17);
9891 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9892 __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_t_17, 0, 0, NULL, NULL, &__pyx_slice__4, 0, 0, 1);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 608, __pyx_L1_error)
9893 __Pyx_GOTREF(__pyx_t_1);
9894 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
9895 __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_astype);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 608, __pyx_L1_error)
9896 __Pyx_GOTREF(__pyx_t_17);
9897 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9898 __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 608, __pyx_L1_error)
9899 __Pyx_GOTREF(__pyx_t_1);
9900 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int32);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 608, __pyx_L1_error)
9901 __Pyx_GOTREF(__pyx_t_5);
9902 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9904 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
9905 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_17);
9906 if (likely(__pyx_t_1)) {
9907 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_17);
9908 __Pyx_INCREF(__pyx_t_1);
9909 __Pyx_INCREF(
function);
9910 __Pyx_DECREF_SET(__pyx_t_17,
function);
9913 __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_1, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_5);
9914 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
9915 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9916 if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 608, __pyx_L1_error)
9917 __Pyx_GOTREF(__pyx_t_3);
9918 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
9919 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(__pyx_t_3, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 608, __pyx_L1_error)
9920 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9921 __PYX_XDEC_MEMVIEW(&__pyx_v_nodes_2rank_values, 1);
9922 __pyx_v_nodes_2rank_values = __pyx_t_6;
9923 __pyx_t_6.memview = NULL;
9924 __pyx_t_6.data = NULL;
9933 __pyx_t_8 = __Pyx_MemoryView_Len(__pyx_v_nodes_2rank_values);
9934 __pyx_v_nodes_2rank_len = __pyx_t_8;
9943 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_comm, __pyx_n_s_allreduce);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 610, __pyx_L1_error)
9944 __Pyx_GOTREF(__pyx_t_3);
9945 __pyx_t_17 = PyInt_FromSsize_t(__pyx_v_nodes_2rank_len);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 610, __pyx_L1_error)
9946 __Pyx_GOTREF(__pyx_t_17);
9947 __pyx_t_5 = PyTuple_New(1);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 610, __pyx_L1_error)
9948 __Pyx_GOTREF(__pyx_t_5);
9949 __Pyx_GIVEREF(__pyx_t_17);
9950 PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_17);
9952 __pyx_t_17 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 610, __pyx_L1_error)
9953 __Pyx_GOTREF(__pyx_t_17);
9954 __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_MPI);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 610, __pyx_L1_error)
9955 __Pyx_GOTREF(__pyx_t_1);
9956 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SUM);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 610, __pyx_L1_error)
9957 __Pyx_GOTREF(__pyx_t_2);
9958 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9959 if (PyDict_SetItem(__pyx_t_17, __pyx_n_s_op, __pyx_t_2) < 0) __PYX_ERR(0, 610, __pyx_L1_error)
9960 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9961 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, __pyx_t_17);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 610, __pyx_L1_error)
9962 __Pyx_GOTREF(__pyx_t_2);
9963 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9964 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9965 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
9966 __Pyx_XDECREF_SET(__pyx_v_array_size, __pyx_t_2);
9976 __pyx_t_9 = ((__pyx_v_rank_recv == __pyx_v_my_rank) != 0);
9986 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 613, __pyx_L1_error)
9987 __Pyx_GOTREF(__pyx_t_2);
9988 __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 613, __pyx_L1_error)
9989 __Pyx_GOTREF(__pyx_t_17);
9990 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9991 __pyx_t_2 = PyTuple_New(1);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 613, __pyx_L1_error)
9992 __Pyx_GOTREF(__pyx_t_2);
9993 __Pyx_INCREF(__pyx_v_array_size);
9994 __Pyx_GIVEREF(__pyx_v_array_size);
9995 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_array_size);
9996 __pyx_t_5 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 613, __pyx_L1_error)
9997 __Pyx_GOTREF(__pyx_t_5);
9998 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 613, __pyx_L1_error)
9999 __Pyx_GOTREF(__pyx_t_3);
10000 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int32);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 613, __pyx_L1_error)
10001 __Pyx_GOTREF(__pyx_t_1);
10002 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10003 if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_1) < 0) __PYX_ERR(0, 613, __pyx_L1_error)
10004 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10005 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_2, __pyx_t_5);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 613, __pyx_L1_error)
10006 __Pyx_GOTREF(__pyx_t_1);
10007 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
10008 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10009 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10010 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 613, __pyx_L1_error)
10011 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10012 __PYX_XDEC_MEMVIEW(&__pyx_v_nodes_2doArray, 1);
10013 __pyx_v_nodes_2doArray = __pyx_t_6;
10014 __pyx_t_6.memview = NULL;
10015 __pyx_t_6.data = NULL;
10033 __pyx_t_18 = __pyx_v_rank_recv;
10034 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_counts_out.shape[0];
10035 *((
int *) ( (__pyx_v_counts_out.data + __pyx_t_18 * __pyx_v_counts_out.strides[0]) )) = __pyx_v_nodes_2rank_len;
10044 __pyx_t_9 = ((__pyx_v_rank_recv > 0) != 0);
10054 __pyx_t_19 = (__pyx_v_rank_recv - 1);
10055 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_displacements_out.shape[0];
10056 __pyx_t_20 = (__pyx_v_rank_recv - 1);
10057 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_counts_out.shape[0];
10058 __pyx_t_21 = __pyx_v_rank_recv;
10059 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_displacements_out.shape[0];
10060 *((
int *) ( (__pyx_v_displacements_out.data + __pyx_t_21 * __pyx_v_displacements_out.strides[0]) )) = ((*((
int *) ( (__pyx_v_displacements_out.data + __pyx_t_19 * __pyx_v_displacements_out.strides[0]) ))) + (*((
int *) ( (__pyx_v_counts_out.data + __pyx_t_20 * __pyx_v_counts_out.strides[0]) ))));
10078 __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 622, __pyx_L1_error)
10079 __Pyx_GOTREF(__pyx_t_1);
10080 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 622, __pyx_L1_error)
10081 __Pyx_GOTREF(__pyx_t_5);
10082 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10083 __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_nodes_2rank_len);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 622, __pyx_L1_error)
10084 __Pyx_GOTREF(__pyx_t_1);
10085 __pyx_t_2 = PyList_New(1);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 622, __pyx_L1_error)
10086 __Pyx_GOTREF(__pyx_t_2);
10087 __Pyx_GIVEREF(__pyx_t_1);
10088 PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
10090 __pyx_t_1 = PyTuple_New(1);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 622, __pyx_L1_error)
10091 __Pyx_GOTREF(__pyx_t_1);
10092 __Pyx_GIVEREF(__pyx_t_2);
10093 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
10095 __pyx_t_2 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 622, __pyx_L1_error)
10096 __Pyx_GOTREF(__pyx_t_2);
10097 __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_n_s_np);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 622, __pyx_L1_error)
10098 __Pyx_GOTREF(__pyx_t_17);
10099 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_int32);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 622, __pyx_L1_error)
10100 __Pyx_GOTREF(__pyx_t_3);
10101 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
10102 if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(0, 622, __pyx_L1_error)
10103 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10104 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, __pyx_t_2);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 622, __pyx_L1_error)
10105 __Pyx_GOTREF(__pyx_t_3);
10106 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10107 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10108 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10109 __Pyx_XDECREF_SET(__pyx_v_my_size, __pyx_t_3);
10119 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_comm, __pyx_n_s_Gatherv);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 623, __pyx_L1_error)
10120 __Pyx_GOTREF(__pyx_t_3);
10129 __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_counts_in, 1, (PyObject *(*)(
char *)) __pyx_memview_get_int, (
int (*)(
char *, PyObject *)) __pyx_memview_set_int, 0);;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 624, __pyx_L1_error)
10130 __Pyx_GOTREF(__pyx_t_2);
10139 __pyx_t_1 = __pyx_pf_6mprans_13MeshSmoothing_21getNonOwnedNodeValues_genexpr(((PyObject*)__pyx_cur_scope));
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 625, __pyx_L1_error)
10140 __Pyx_GOTREF(__pyx_t_1);
10141 __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_t_1);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 625, __pyx_L1_error)
10142 __Pyx_GOTREF(__pyx_t_5);
10143 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10152 __pyx_t_1 = __pyx_pf_6mprans_13MeshSmoothing_21getNonOwnedNodeValues_3genexpr(((PyObject*)__pyx_cur_scope));
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 626, __pyx_L1_error)
10153 __Pyx_GOTREF(__pyx_t_1);
10154 __pyx_t_17 = __Pyx_PySequence_Tuple(__pyx_t_1);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 626, __pyx_L1_error)
10155 __Pyx_GOTREF(__pyx_t_17);
10156 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10165 __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_MPI);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 627, __pyx_L1_error)
10166 __Pyx_GOTREF(__pyx_t_1);
10167 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_INT);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 627, __pyx_L1_error)
10168 __Pyx_GOTREF(__pyx_t_4);
10169 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10178 __pyx_t_1 = PyList_New(4);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 624, __pyx_L1_error)
10179 __Pyx_GOTREF(__pyx_t_1);
10180 __Pyx_GIVEREF(__pyx_t_2);
10181 PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
10182 __Pyx_GIVEREF(__pyx_t_5);
10183 PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_5);
10184 __Pyx_GIVEREF(__pyx_t_17);
10185 PyList_SET_ITEM(__pyx_t_1, 2, __pyx_t_17);
10186 __Pyx_GIVEREF(__pyx_t_4);
10187 PyList_SET_ITEM(__pyx_t_1, 3, __pyx_t_4);
10200 __pyx_t_4 = PyTuple_New(2);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 623, __pyx_L1_error)
10201 __Pyx_GOTREF(__pyx_t_4);
10202 __Pyx_INCREF(__pyx_v_my_size);
10203 __Pyx_GIVEREF(__pyx_v_my_size);
10204 PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_my_size);
10205 __Pyx_GIVEREF(__pyx_t_1);
10206 PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
10216 __pyx_t_1 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 628, __pyx_L1_error)
10217 __Pyx_GOTREF(__pyx_t_1);
10218 __pyx_t_17 = __Pyx_PyInt_From_int(__pyx_v_rank_recv);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 628, __pyx_L1_error)
10219 __Pyx_GOTREF(__pyx_t_17);
10220 if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_root, __pyx_t_17) < 0) __PYX_ERR(0, 628, __pyx_L1_error)
10221 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
10230 __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_1);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 623, __pyx_L1_error)
10231 __Pyx_GOTREF(__pyx_t_17);
10232 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10233 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10234 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10235 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
10244 __pyx_t_9 = ((__pyx_v_rank_recv == __pyx_v_my_rank) != 0);
10254 __pyx_v_sumtot = 0;
10263 __pyx_t_16 = __pyx_cur_scope->__pyx_v_comm_size;
10264 __pyx_t_22 = __pyx_t_16;
10265 for (__pyx_t_23 = 0; __pyx_t_23 < __pyx_t_22; __pyx_t_23+=1) {
10266 __pyx_v_ir = __pyx_t_23;
10275 __pyx_t_9 = ((__pyx_v_ir > 0) != 0);
10285 __pyx_t_24 = (__pyx_v_ir - 1);
10286 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_counts_in.shape[0];
10287 __pyx_v_sumtot = (__pyx_v_sumtot + (*((
int *) ( (__pyx_v_counts_in.data + __pyx_t_24 * __pyx_v_counts_in.strides[0]) ))));
10296 __pyx_t_25 = __pyx_v_ir;
10297 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_counts_in.shape[0];
10298 __pyx_t_9 = (((*((
int *) ( (__pyx_v_counts_in.data + __pyx_t_25 * __pyx_v_counts_in.strides[0]) ))) == 0) != 0);
10308 __pyx_t_26 = __pyx_v_ir;
10309 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_displacements_in.shape[0];
10310 *((
int *) ( (__pyx_v_displacements_in.data + __pyx_t_26 * __pyx_v_displacements_in.strides[0]) )) = 0;
10330 __pyx_t_27 = __pyx_v_ir;
10331 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_displacements_in.shape[0];
10332 *((
int *) ( (__pyx_v_displacements_in.data + __pyx_t_27 * __pyx_v_displacements_in.strides[0]) )) = __pyx_v_sumtot;
10362 __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_comm, __pyx_n_s_Gatherv);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 642, __pyx_L1_error)
10363 __Pyx_GOTREF(__pyx_t_17);
10364 __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_nodes_2rank_values, 1, (PyObject *(*)(
char *)) __pyx_memview_get_int, (
int (*)(
char *, PyObject *)) __pyx_memview_set_int, 0);;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 642, __pyx_L1_error)
10365 __Pyx_GOTREF(__pyx_t_1);
10374 __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_nodes_2doArray, 1, (PyObject *(*)(
char *)) __pyx_memview_get_int, (
int (*)(
char *, PyObject *)) __pyx_memview_set_int, 0);;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 643, __pyx_L1_error)
10375 __Pyx_GOTREF(__pyx_t_4);
10384 __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_counts_in, 1, (PyObject *(*)(
char *)) __pyx_memview_get_int, (
int (*)(
char *, PyObject *)) __pyx_memview_set_int, 0);;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 644, __pyx_L1_error)
10385 __Pyx_GOTREF(__pyx_t_3);
10394 __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_displacements_in, 1, (PyObject *(*)(
char *)) __pyx_memview_get_int, (
int (*)(
char *, PyObject *)) __pyx_memview_set_int, 0);;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 645, __pyx_L1_error)
10395 __Pyx_GOTREF(__pyx_t_5);
10404 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MPI);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 646, __pyx_L1_error)
10405 __Pyx_GOTREF(__pyx_t_2);
10406 __pyx_t_28 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_INT);
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 646, __pyx_L1_error)
10407 __Pyx_GOTREF(__pyx_t_28);
10408 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10417 __pyx_t_2 = PyList_New(4);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 643, __pyx_L1_error)
10418 __Pyx_GOTREF(__pyx_t_2);
10419 __Pyx_GIVEREF(__pyx_t_4);
10420 PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_4);
10421 __Pyx_GIVEREF(__pyx_t_3);
10422 PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
10423 __Pyx_GIVEREF(__pyx_t_5);
10424 PyList_SET_ITEM(__pyx_t_2, 2, __pyx_t_5);
10425 __Pyx_GIVEREF(__pyx_t_28);
10426 PyList_SET_ITEM(__pyx_t_2, 3, __pyx_t_28);
10439 __pyx_t_28 = PyTuple_New(2);
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 642, __pyx_L1_error)
10440 __Pyx_GOTREF(__pyx_t_28);
10441 __Pyx_GIVEREF(__pyx_t_1);
10442 PyTuple_SET_ITEM(__pyx_t_28, 0, __pyx_t_1);
10443 __Pyx_GIVEREF(__pyx_t_2);
10444 PyTuple_SET_ITEM(__pyx_t_28, 1, __pyx_t_2);
10455 __pyx_t_2 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 647, __pyx_L1_error)
10456 __Pyx_GOTREF(__pyx_t_2);
10457 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_rank_recv);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 647, __pyx_L1_error)
10458 __Pyx_GOTREF(__pyx_t_1);
10459 if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_root, __pyx_t_1) < 0) __PYX_ERR(0, 647, __pyx_L1_error)
10460 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10469 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_28, __pyx_t_2);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 642, __pyx_L1_error)
10470 __Pyx_GOTREF(__pyx_t_1);
10471 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
10472 __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
10473 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10474 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10485 if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_v_arg_shape_copy.shape[0];
10486 *((
int *) ( (__pyx_v_arg_shape_copy.data + __pyx_t_29 * __pyx_v_arg_shape_copy.strides[0]) )) = 0;
10495 __pyx_t_7 = __pyx_cur_scope->__pyx_v_comm_size;
10496 __pyx_t_10 = __pyx_t_7;
10497 for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_10; __pyx_t_13+=1) {
10498 __pyx_v_rank = __pyx_t_13;
10507 __pyx_t_30 = __pyx_v_rank;
10508 if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_v_counts_in.shape[0];
10510 if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_v_arg_shape_copy.shape[0];
10511 *((
int *) ( (__pyx_v_arg_shape_copy.data + __pyx_t_31 * __pyx_v_arg_shape_copy.strides[0]) )) = (*((
int *) ( (__pyx_v_counts_in.data + __pyx_t_30 * __pyx_v_counts_in.strides[0]) )));
10520 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 653, __pyx_L1_error)
10521 __Pyx_GOTREF(__pyx_t_2);
10522 __pyx_t_28 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 653, __pyx_L1_error)
10523 __Pyx_GOTREF(__pyx_t_28);
10524 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10525 __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_arg_shape_copy, 1, (PyObject *(*)(
char *)) __pyx_memview_get_int, (
int (*)(
char *, PyObject *)) __pyx_memview_set_int, 0);;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 653, __pyx_L1_error)
10526 __Pyx_GOTREF(__pyx_t_2);
10528 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_28))) {
10529 __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_28);
10530 if (likely(__pyx_t_17)) {
10531 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_28);
10532 __Pyx_INCREF(__pyx_t_17);
10533 __Pyx_INCREF(
function);
10534 __Pyx_DECREF_SET(__pyx_t_28,
function);
10537 __pyx_t_1 = (__pyx_t_17) ? __Pyx_PyObject_Call2Args(__pyx_t_28, __pyx_t_17, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_28, __pyx_t_2);
10538 __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
10539 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10540 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 653, __pyx_L1_error)
10541 __Pyx_GOTREF(__pyx_t_1);
10542 __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
10543 __pyx_t_28 = __Pyx_PyInt_From_int(__pyx_v_rank);
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 653, __pyx_L1_error)
10544 __Pyx_GOTREF(__pyx_t_28);
10545 if (unlikely(PyDict_SetItem(__pyx_v_arg_2rank, __pyx_t_28, __pyx_t_1) < 0)) __PYX_ERR(0, 653, __pyx_L1_error)
10546 __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
10547 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10557 __pyx_t_7 = __pyx_cur_scope->__pyx_v_comm_size;
10558 __pyx_t_10 = __pyx_t_7;
10559 for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_10; __pyx_t_13+=1) {
10560 __pyx_v_rank = __pyx_t_13;
10569 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_rank);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 656, __pyx_L1_error)
10570 __Pyx_GOTREF(__pyx_t_1);
10571 __pyx_t_28 = __Pyx_PyDict_GetItem(__pyx_v_arg_2rank, __pyx_t_1);
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 656, __pyx_L1_error)
10572 __Pyx_GOTREF(__pyx_t_28);
10573 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10574 __Pyx_XDECREF_SET(__pyx_v_arg_2rank_values, __pyx_t_28);
10584 __pyx_t_32 = __pyx_v_rank;
10585 if (__pyx_t_32 < 0) __pyx_t_32 += __pyx_v_displacements_in.shape[0];
10586 __pyx_v_disp = (*((
int *) ( (__pyx_v_displacements_in.data + __pyx_t_32 * __pyx_v_displacements_in.strides[0]) )));
10595 __pyx_t_33 = __pyx_v_rank;
10596 if (__pyx_t_33 < 0) __pyx_t_33 += __pyx_v_counts_in.shape[0];
10597 __pyx_t_16 = (*((
int *) ( (__pyx_v_counts_in.data + __pyx_t_33 * __pyx_v_counts_in.strides[0]) )));
10598 __pyx_t_22 = __pyx_t_16;
10599 for (__pyx_t_23 = 0; __pyx_t_23 < __pyx_t_22; __pyx_t_23+=1) {
10600 __pyx_v_iN = __pyx_t_23;
10609 __pyx_t_9 = ((__pyx_v_arg_shape_len > 1) != 0);
10620 if (__pyx_t_34 < 0) __pyx_t_34 += __pyx_v_arg_shape.shape[0];
10621 __pyx_t_35 = (*((
int *) ( (__pyx_v_arg_shape.data + __pyx_t_34 * __pyx_v_arg_shape.strides[0]) )));
10622 __pyx_t_36 = __pyx_t_35;
10623 for (__pyx_t_37 = 0; __pyx_t_37 < __pyx_t_36; __pyx_t_37+=1) {
10624 __pyx_v_ii = __pyx_t_37;
10633 __pyx_t_38 = (__pyx_v_iN + __pyx_v_disp);
10634 if (__pyx_t_38 < 0) __pyx_t_38 += __pyx_v_nodes_2doArray.shape[0];
10635 __pyx_t_28 = __Pyx_PyInt_From_int((*((
int *) ( (__pyx_v_nodes_2doArray.data + __pyx_t_38 * __pyx_v_nodes_2doArray.strides[0]) ))));
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 661, __pyx_L1_error)
10636 __Pyx_GOTREF(__pyx_t_28);
10637 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ii);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 661, __pyx_L1_error)
10638 __Pyx_GOTREF(__pyx_t_1);
10639 __pyx_t_2 = PyTuple_New(2);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 661, __pyx_L1_error)
10640 __Pyx_GOTREF(__pyx_t_2);
10641 __Pyx_GIVEREF(__pyx_t_28);
10642 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_28);
10643 __Pyx_GIVEREF(__pyx_t_1);
10644 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
10647 __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_args_, __pyx_t_2);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 661, __pyx_L1_error)
10648 __Pyx_GOTREF(__pyx_t_1);
10649 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10650 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_iN);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 661, __pyx_L1_error)
10651 __Pyx_GOTREF(__pyx_t_2);
10652 __pyx_t_28 = __Pyx_PyInt_From_int(__pyx_v_ii);
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 661, __pyx_L1_error)
10653 __Pyx_GOTREF(__pyx_t_28);
10654 __pyx_t_17 = PyTuple_New(2);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 661, __pyx_L1_error)
10655 __Pyx_GOTREF(__pyx_t_17);
10656 __Pyx_GIVEREF(__pyx_t_2);
10657 PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_2);
10658 __Pyx_GIVEREF(__pyx_t_28);
10659 PyTuple_SET_ITEM(__pyx_t_17, 1, __pyx_t_28);
10662 if (unlikely(PyObject_SetItem(__pyx_v_arg_2rank_values, __pyx_t_17, __pyx_t_1) < 0)) __PYX_ERR(0, 661, __pyx_L1_error)
10663 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
10664 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10685 __pyx_t_39 = (__pyx_v_iN + __pyx_v_disp);
10686 if (__pyx_t_39 < 0) __pyx_t_39 += __pyx_v_nodes_2doArray.shape[0];
10687 __pyx_t_35 = (*((
int *) ( (__pyx_v_nodes_2doArray.data + __pyx_t_39 * __pyx_v_nodes_2doArray.strides[0]) )));
10688 __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args_, __pyx_t_35,
int, 1, __Pyx_PyInt_From_int, 0, 1, 0);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
10689 __Pyx_GOTREF(__pyx_t_1);
10690 if (unlikely(__Pyx_SetItemInt(__pyx_v_arg_2rank_values, __pyx_v_iN, __pyx_t_1,
int, 1, __Pyx_PyInt_From_int, 0, 1, 0) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
10691 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10705 if (__pyx_t_40 < 0) __pyx_t_40 += __pyx_v_arg_shape_copy.shape[0];
10706 *((
int *) ( (__pyx_v_arg_shape_copy.data + __pyx_t_40 * __pyx_v_arg_shape_copy.strides[0]) )) = (__pyx_v_nNodes_global - __pyx_v_nNodes_owned);
10715 __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 666, __pyx_L1_error)
10716 __Pyx_GOTREF(__pyx_t_1);
10717 __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 666, __pyx_L1_error)
10718 __Pyx_GOTREF(__pyx_t_17);
10719 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10720 __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_arg_shape_copy, 1, (PyObject *(*)(
char *)) __pyx_memview_get_int, (
int (*)(
char *, PyObject *)) __pyx_memview_set_int, 0);;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 666, __pyx_L1_error)
10721 __Pyx_GOTREF(__pyx_t_1);
10722 __pyx_t_28 = PyTuple_New(1);
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 666, __pyx_L1_error)
10723 __Pyx_GOTREF(__pyx_t_28);
10724 __Pyx_GIVEREF(__pyx_t_1);
10725 PyTuple_SET_ITEM(__pyx_t_28, 0, __pyx_t_1);
10727 __pyx_t_1 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 666, __pyx_L1_error)
10728 __Pyx_GOTREF(__pyx_t_1);
10729 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 666, __pyx_L1_error)
10730 __Pyx_GOTREF(__pyx_t_2);
10731 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_double);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 666, __pyx_L1_error)
10732 __Pyx_GOTREF(__pyx_t_5);
10733 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10734 if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 666, __pyx_L1_error)
10735 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10736 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_28, __pyx_t_1);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 666, __pyx_L1_error)
10737 __Pyx_GOTREF(__pyx_t_5);
10738 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
10739 __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
10740 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10741 __pyx_v_arg_2doArray = __pyx_t_5;
10751 __pyx_t_7 = __pyx_cur_scope->__pyx_v_comm_size;
10752 __pyx_t_10 = __pyx_t_7;
10753 for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_10; __pyx_t_13+=1) {
10754 __pyx_v_rank_recv = __pyx_t_13;
10763 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_rank_recv);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 668, __pyx_L1_error)
10764 __Pyx_GOTREF(__pyx_t_1);
10765 __pyx_t_28 = __Pyx_PyDict_GetItem(__pyx_v_arg_2rank, __pyx_t_1);
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 668, __pyx_L1_error)
10766 __Pyx_GOTREF(__pyx_t_28);
10767 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10768 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_28, __pyx_n_s_astype);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 668, __pyx_L1_error)
10769 __Pyx_GOTREF(__pyx_t_1);
10770 __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
10771 __Pyx_GetModuleGlobalName(__pyx_t_28, __pyx_n_s_np);
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 668, __pyx_L1_error)
10772 __Pyx_GOTREF(__pyx_t_28);
10773 __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_28, __pyx_n_s_double);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 668, __pyx_L1_error)
10774 __Pyx_GOTREF(__pyx_t_17);
10775 __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
10777 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
10778 __pyx_t_28 = PyMethod_GET_SELF(__pyx_t_1);
10779 if (likely(__pyx_t_28)) {
10780 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_1);
10781 __Pyx_INCREF(__pyx_t_28);
10782 __Pyx_INCREF(
function);
10783 __Pyx_DECREF_SET(__pyx_t_1,
function);
10786 __pyx_t_5 = (__pyx_t_28) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_28, __pyx_t_17) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_17);
10787 __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;
10788 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
10789 if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 668, __pyx_L1_error)
10790 __Pyx_GOTREF(__pyx_t_5);
10791 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10792 __Pyx_XDECREF_SET(__pyx_v_arg_2rank_values, __pyx_t_5);
10802 __pyx_t_9 = ((__pyx_v_arg_shape_len > 1) != 0);
10812 __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_n_s_MPI);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 670, __pyx_L1_error)
10813 __Pyx_GOTREF(__pyx_t_17);
10814 __pyx_t_28 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_DOUBLE);
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 670, __pyx_L1_error)
10815 __Pyx_GOTREF(__pyx_t_28);
10816 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
10817 __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_28, __pyx_n_s_Create_contiguous);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 670, __pyx_L1_error)
10818 __Pyx_GOTREF(__pyx_t_17);
10819 __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
10820 __pyx_t_28 = __Pyx_PyInt_From_int(__pyx_v_shape_factor);
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 670, __pyx_L1_error)
10821 __Pyx_GOTREF(__pyx_t_28);
10823 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
10824 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_17);
10825 if (likely(__pyx_t_2)) {
10826 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_17);
10827 __Pyx_INCREF(__pyx_t_2);
10828 __Pyx_INCREF(
function);
10829 __Pyx_DECREF_SET(__pyx_t_17,
function);
10832 __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_2, __pyx_t_28) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_28);
10833 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
10834 __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
10835 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 670, __pyx_L1_error)
10836 __Pyx_GOTREF(__pyx_t_1);
10837 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
10838 __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Commit);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 670, __pyx_L1_error)
10839 __Pyx_GOTREF(__pyx_t_17);
10840 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10842 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
10843 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_17);
10844 if (likely(__pyx_t_1)) {
10845 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_17);
10846 __Pyx_INCREF(__pyx_t_1);
10847 __Pyx_INCREF(
function);
10848 __Pyx_DECREF_SET(__pyx_t_17,
function);
10851 __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_17);
10852 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
10853 if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 670, __pyx_L1_error)
10854 __Pyx_GOTREF(__pyx_t_5);
10855 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
10856 __Pyx_XDECREF_SET(__pyx_v_datatype, __pyx_t_5);
10877 __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_MPI);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 672, __pyx_L1_error)
10878 __Pyx_GOTREF(__pyx_t_5);
10879 __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_DOUBLE);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 672, __pyx_L1_error)
10880 __Pyx_GOTREF(__pyx_t_17);
10881 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10882 __Pyx_XDECREF_SET(__pyx_v_datatype, __pyx_t_17);
10894 __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_comm, __pyx_n_s_Gatherv);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 673, __pyx_L1_error)
10895 __Pyx_GOTREF(__pyx_t_17);
10904 __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_counts_out, 1, (PyObject *(*)(
char *)) __pyx_memview_get_int, (
int (*)(
char *, PyObject *)) __pyx_memview_set_int, 0);;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 675, __pyx_L1_error)
10905 __Pyx_GOTREF(__pyx_t_5);
10914 __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_displacements_out, 1, (PyObject *(*)(
char *)) __pyx_memview_get_int, (
int (*)(
char *, PyObject *)) __pyx_memview_set_int, 0);;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 676, __pyx_L1_error)
10915 __Pyx_GOTREF(__pyx_t_1);
10924 __pyx_t_28 = PyList_New(4);
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 674, __pyx_L1_error)
10925 __Pyx_GOTREF(__pyx_t_28);
10926 __Pyx_INCREF(__pyx_v_arg_2doArray);
10927 __Pyx_GIVEREF(__pyx_v_arg_2doArray);
10928 PyList_SET_ITEM(__pyx_t_28, 0, __pyx_v_arg_2doArray);
10929 __Pyx_GIVEREF(__pyx_t_5);
10930 PyList_SET_ITEM(__pyx_t_28, 1, __pyx_t_5);
10931 __Pyx_GIVEREF(__pyx_t_1);
10932 PyList_SET_ITEM(__pyx_t_28, 2, __pyx_t_1);
10933 __Pyx_INCREF(__pyx_v_datatype);
10934 __Pyx_GIVEREF(__pyx_v_datatype);
10935 PyList_SET_ITEM(__pyx_t_28, 3, __pyx_v_datatype);
10946 __pyx_t_1 = PyTuple_New(2);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 673, __pyx_L1_error)
10947 __Pyx_GOTREF(__pyx_t_1);
10948 __Pyx_INCREF(__pyx_v_arg_2rank_values);
10949 __Pyx_GIVEREF(__pyx_v_arg_2rank_values);
10950 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_arg_2rank_values);
10951 __Pyx_GIVEREF(__pyx_t_28);
10952 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_28);
10962 __pyx_t_28 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 678, __pyx_L1_error)
10963 __Pyx_GOTREF(__pyx_t_28);
10964 __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_rank_recv);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 678, __pyx_L1_error)
10965 __Pyx_GOTREF(__pyx_t_5);
10966 if (PyDict_SetItem(__pyx_t_28, __pyx_n_s_root, __pyx_t_5) < 0) __PYX_ERR(0, 678, __pyx_L1_error)
10967 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10976 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_1, __pyx_t_28);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 673, __pyx_L1_error)
10977 __Pyx_GOTREF(__pyx_t_5);
10978 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
10979 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10980 __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
10981 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10991 __pyx_t_7 = __pyx_v_nNodes_global;
10992 __pyx_t_10 = __pyx_t_7;
10993 for (__pyx_t_13 = __pyx_v_nNodes_owned; __pyx_t_13 < __pyx_t_10; __pyx_t_13+=1) {
10994 __pyx_v_iN = __pyx_t_13;
11003 __pyx_t_9 = ((__pyx_v_arg_shape_len > 1) != 0);
11014 if (__pyx_t_41 < 0) __pyx_t_41 += __pyx_v_arg_shape.shape[0];
11015 __pyx_t_16 = (*((
int *) ( (__pyx_v_arg_shape.data + __pyx_t_41 * __pyx_v_arg_shape.strides[0]) )));
11016 __pyx_t_22 = __pyx_t_16;
11017 for (__pyx_t_23 = 0; __pyx_t_23 < __pyx_t_22; __pyx_t_23+=1) {
11018 __pyx_v_ii = __pyx_t_23;
11027 __pyx_t_5 = __Pyx_PyInt_From_int((__pyx_v_iN - __pyx_v_nNodes_owned));
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 683, __pyx_L1_error)
11028 __Pyx_GOTREF(__pyx_t_5);
11029 __pyx_t_28 = __Pyx_PyInt_From_int(__pyx_v_ii);
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 683, __pyx_L1_error)
11030 __Pyx_GOTREF(__pyx_t_28);
11031 __pyx_t_1 = PyTuple_New(2);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 683, __pyx_L1_error)
11032 __Pyx_GOTREF(__pyx_t_1);
11033 __Pyx_GIVEREF(__pyx_t_5);
11034 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5);
11035 __Pyx_GIVEREF(__pyx_t_28);
11036 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_28);
11039 __pyx_t_28 = __Pyx_PyObject_GetItem(__pyx_v_arg_2doArray, __pyx_t_1);
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 683, __pyx_L1_error)
11040 __Pyx_GOTREF(__pyx_t_28);
11041 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11042 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_iN);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 683, __pyx_L1_error)
11043 __Pyx_GOTREF(__pyx_t_1);
11044 __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_ii);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 683, __pyx_L1_error)
11045 __Pyx_GOTREF(__pyx_t_5);
11046 __pyx_t_17 = PyTuple_New(2);
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 683, __pyx_L1_error)
11047 __Pyx_GOTREF(__pyx_t_17);
11048 __Pyx_GIVEREF(__pyx_t_1);
11049 PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_1);
11050 __Pyx_GIVEREF(__pyx_t_5);
11051 PyTuple_SET_ITEM(__pyx_t_17, 1, __pyx_t_5);
11054 if (unlikely(PyObject_SetItem(__pyx_v_args_, __pyx_t_17, __pyx_t_28) < 0)) __PYX_ERR(0, 683, __pyx_L1_error)
11055 __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
11056 __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
11077 __pyx_t_16 = (__pyx_v_iN - __pyx_v_nNodes_owned);
11078 __pyx_t_28 = __Pyx_GetItemInt(__pyx_v_arg_2doArray, __pyx_t_16,
int, 1, __Pyx_PyInt_From_int, 0, 1, 0);
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 685, __pyx_L1_error)
11079 __Pyx_GOTREF(__pyx_t_28);
11080 if (unlikely(__Pyx_SetItemInt(__pyx_v_args_, __pyx_v_iN, __pyx_t_28,
int, 1, __Pyx_PyInt_From_int, 0, 1, 0) < 0)) __PYX_ERR(0, 685, __pyx_L1_error)
11081 __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
11104 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
11107 __Pyx_XDECREF(__pyx_t_1);
11108 __Pyx_XDECREF(__pyx_t_2);
11109 __Pyx_XDECREF(__pyx_t_3);
11110 __Pyx_XDECREF(__pyx_t_4);
11111 __Pyx_XDECREF(__pyx_t_5);
11112 __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
11113 __Pyx_XDECREF(__pyx_t_17);
11114 __Pyx_XDECREF(__pyx_t_28);
11115 __Pyx_AddTraceback(
"mprans.MeshSmoothing.getNonOwnedNodeValues", __pyx_clineno, __pyx_lineno, __pyx_filename);
11118 __Pyx_XDECREF(__pyx_v_Comm);
11119 __Pyx_XDECREF(__pyx_v_comm);
11120 __Pyx_XDECREF(__pyx_v_arg_2rank);
11121 __Pyx_XDECREF(__pyx_v_nodes_2rank);
11122 __PYX_XDEC_MEMVIEW(&__pyx_v_result, 1);
11123 __PYX_XDEC_MEMVIEW(&__pyx_v_counts_in, 1);
11124 __PYX_XDEC_MEMVIEW(&__pyx_v_displacements_in, 1);
11125 __PYX_XDEC_MEMVIEW(&__pyx_v_counts_out, 1);
11126 __PYX_XDEC_MEMVIEW(&__pyx_v_displacements_out, 1);
11127 __PYX_XDEC_MEMVIEW(&__pyx_v_arg_shape, 1);
11128 __PYX_XDEC_MEMVIEW(&__pyx_v_arg_shape_copy, 1);
11129 __PYX_XDEC_MEMVIEW(&__pyx_v_nodes_2rank_values, 1);
11130 __PYX_XDEC_MEMVIEW(&__pyx_v_nodes_2doArray, 1);
11131 __Pyx_XDECREF(__pyx_v_array_size);
11132 __Pyx_XDECREF(__pyx_v_my_size);
11133 __Pyx_XDECREF(__pyx_v_arg_2rank_values);
11134 __Pyx_XDECREF(__pyx_v_arg_2doArray);
11135 __Pyx_XDECREF(__pyx_v_datatype);
11136 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeNumbering_subdomain2global, 1);
11137 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeOffsets_subdomain_owned, 1);
11138 __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
11139 __Pyx_XGIVEREF(__pyx_r);
11140 __Pyx_RefNannyFinishContext();
11153 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_55checkOwnedVariable(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
11154 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_55checkOwnedVariable = {
"checkOwnedVariable", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_55checkOwnedVariable, METH_VARARGS|METH_KEYWORDS, 0};
11155 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_55checkOwnedVariable(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
11156 int __pyx_v_variable_nb_local;
11158 int __pyx_v_nVariables_owned;
11159 __Pyx_memviewslice __pyx_v_variableNumbering_subdomain2global = { 0, 0, { 0 }, { 0 }, { 0 } };
11160 __Pyx_memviewslice __pyx_v_variableOffsets_subdomain_owned = { 0, 0, { 0 }, { 0 }, { 0 } };
11161 PyObject *__pyx_r = 0;
11162 __Pyx_RefNannyDeclarations
11163 __Pyx_RefNannySetupContext(
"checkOwnedVariable (wrapper)", 0);
11165 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_variable_nb_local,&__pyx_n_s_rank,&__pyx_n_s_nVariables_owned,&__pyx_n_s_variableNumbering_subdomain2glob,&__pyx_n_s_variableOffsets_subdomain_owned,0};
11166 PyObject* values[5] = {0,0,0,0,0};
11167 if (unlikely(__pyx_kwds)) {
11168 Py_ssize_t kw_args;
11169 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
11170 switch (pos_args) {
11171 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
11172 CYTHON_FALLTHROUGH;
11173 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
11174 CYTHON_FALLTHROUGH;
11175 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11176 CYTHON_FALLTHROUGH;
11177 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11178 CYTHON_FALLTHROUGH;
11179 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11180 CYTHON_FALLTHROUGH;
11182 default:
goto __pyx_L5_argtuple_error;
11184 kw_args = PyDict_Size(__pyx_kwds);
11185 switch (pos_args) {
11187 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_variable_nb_local)) != 0)) kw_args--;
11188 else goto __pyx_L5_argtuple_error;
11189 CYTHON_FALLTHROUGH;
11191 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rank)) != 0)) kw_args--;
11193 __Pyx_RaiseArgtupleInvalid(
"checkOwnedVariable", 1, 5, 5, 1); __PYX_ERR(0, 690, __pyx_L3_error)
11195 CYTHON_FALLTHROUGH;
11197 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nVariables_owned)) != 0)) kw_args--;
11199 __Pyx_RaiseArgtupleInvalid(
"checkOwnedVariable", 1, 5, 5, 2); __PYX_ERR(0, 690, __pyx_L3_error)
11201 CYTHON_FALLTHROUGH;
11203 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_variableNumbering_subdomain2glob)) != 0)) kw_args--;
11205 __Pyx_RaiseArgtupleInvalid(
"checkOwnedVariable", 1, 5, 5, 3); __PYX_ERR(0, 690, __pyx_L3_error)
11207 CYTHON_FALLTHROUGH;
11209 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_variableOffsets_subdomain_owned)) != 0)) kw_args--;
11211 __Pyx_RaiseArgtupleInvalid(
"checkOwnedVariable", 1, 5, 5, 4); __PYX_ERR(0, 690, __pyx_L3_error)
11214 if (unlikely(kw_args > 0)) {
11215 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"checkOwnedVariable") < 0)) __PYX_ERR(0, 690, __pyx_L3_error)
11217 }
else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
11218 goto __pyx_L5_argtuple_error;
11220 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11221 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11222 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11223 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
11224 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
11226 __pyx_v_variable_nb_local = __Pyx_PyInt_As_int(values[0]);
if (unlikely((__pyx_v_variable_nb_local == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 690, __pyx_L3_error)
11227 __pyx_v_rank = __Pyx_PyInt_As_int(values[1]);
if (unlikely((__pyx_v_rank == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 691, __pyx_L3_error)
11228 __pyx_v_nVariables_owned = __Pyx_PyInt_As_int(values[2]);
if (unlikely((__pyx_v_nVariables_owned == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 692, __pyx_L3_error)
11229 __pyx_v_variableNumbering_subdomain2global = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[3], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_variableNumbering_subdomain2global.memview)) __PYX_ERR(0, 693, __pyx_L3_error)
11230 __pyx_v_variableOffsets_subdomain_owned = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[4], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_variableOffsets_subdomain_owned.memview)) __PYX_ERR(0, 694, __pyx_L3_error)
11232 goto __pyx_L4_argument_unpacking_done;
11233 __pyx_L5_argtuple_error:;
11234 __Pyx_RaiseArgtupleInvalid(
"checkOwnedVariable", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 690, __pyx_L3_error)
11236 __Pyx_AddTraceback(
"mprans.MeshSmoothing.checkOwnedVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
11237 __Pyx_RefNannyFinishContext();
11239 __pyx_L4_argument_unpacking_done:;
11240 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_54checkOwnedVariable(__pyx_self, __pyx_v_variable_nb_local, __pyx_v_rank, __pyx_v_nVariables_owned, __pyx_v_variableNumbering_subdomain2global, __pyx_v_variableOffsets_subdomain_owned);
11243 __Pyx_RefNannyFinishContext();
11247 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_54checkOwnedVariable(CYTHON_UNUSED PyObject *__pyx_self,
int __pyx_v_variable_nb_local,
int __pyx_v_rank,
int __pyx_v_nVariables_owned, __Pyx_memviewslice __pyx_v_variableNumbering_subdomain2global, __Pyx_memviewslice __pyx_v_variableOffsets_subdomain_owned) {
11248 PyObject *__pyx_r = NULL;
11249 __Pyx_RefNannyDeclarations
11250 __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
11251 PyObject *__pyx_t_2 = NULL;
11252 __Pyx_RefNannySetupContext(
"checkOwnedVariable", 0);
11261 __Pyx_XDECREF(__pyx_r);
11270 __pyx_t_1 = __pyx_f_6mprans_13MeshSmoothing_cyCheckOwnedVariable(__pyx_v_variable_nb_local, __pyx_v_rank, __pyx_v_nVariables_owned, __pyx_v_variableNumbering_subdomain2global, __pyx_v_variableOffsets_subdomain_owned);
if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 695, __pyx_L1_error)
11279 __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_t_1, 1, (PyObject *(*)(
char *)) __pyx_memview_get_int, (
int (*)(
char *, PyObject *)) __pyx_memview_set_int, 0);;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 695, __pyx_L1_error)
11280 __Pyx_GOTREF(__pyx_t_2);
11281 __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
11282 __pyx_t_1.memview = NULL;
11283 __pyx_t_1.data = NULL;
11284 __pyx_r = __pyx_t_2;
11298 __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
11299 __Pyx_XDECREF(__pyx_t_2);
11300 __Pyx_AddTraceback(
"mprans.MeshSmoothing.checkOwnedVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
11303 __PYX_XDEC_MEMVIEW(&__pyx_v_variableNumbering_subdomain2global, 1);
11304 __PYX_XDEC_MEMVIEW(&__pyx_v_variableOffsets_subdomain_owned, 1);
11305 __Pyx_XGIVEREF(__pyx_r);
11306 __Pyx_RefNannyFinishContext();
11319 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_57pyScalarRecoveryAtNodes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
11320 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_57pyScalarRecoveryAtNodes = {
"pyScalarRecoveryAtNodes", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_57pyScalarRecoveryAtNodes, METH_VARARGS|METH_KEYWORDS, 0};
11321 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_57pyScalarRecoveryAtNodes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
11322 __Pyx_memviewslice __pyx_v_scalars = { 0, 0, { 0 }, { 0 }, { 0 } };
11323 __Pyx_memviewslice __pyx_v_nodeElementsArray = { 0, 0, { 0 }, { 0 }, { 0 } };
11324 __Pyx_memviewslice __pyx_v_nodeElementOffsets = { 0, 0, { 0 }, { 0 }, { 0 } };
11325 PyObject *__pyx_r = 0;
11326 __Pyx_RefNannyDeclarations
11327 __Pyx_RefNannySetupContext(
"pyScalarRecoveryAtNodes (wrapper)", 0);
11329 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_scalars,&__pyx_n_s_nodeElementsArray,&__pyx_n_s_nodeElementOffsets,0};
11330 PyObject* values[3] = {0,0,0};
11331 if (unlikely(__pyx_kwds)) {
11332 Py_ssize_t kw_args;
11333 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
11334 switch (pos_args) {
11335 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11336 CYTHON_FALLTHROUGH;
11337 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11338 CYTHON_FALLTHROUGH;
11339 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11340 CYTHON_FALLTHROUGH;
11342 default:
goto __pyx_L5_argtuple_error;
11344 kw_args = PyDict_Size(__pyx_kwds);
11345 switch (pos_args) {
11347 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scalars)) != 0)) kw_args--;
11348 else goto __pyx_L5_argtuple_error;
11349 CYTHON_FALLTHROUGH;
11351 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementsArray)) != 0)) kw_args--;
11353 __Pyx_RaiseArgtupleInvalid(
"pyScalarRecoveryAtNodes", 1, 3, 3, 1); __PYX_ERR(0, 701, __pyx_L3_error)
11355 CYTHON_FALLTHROUGH;
11357 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementOffsets)) != 0)) kw_args--;
11359 __Pyx_RaiseArgtupleInvalid(
"pyScalarRecoveryAtNodes", 1, 3, 3, 2); __PYX_ERR(0, 701, __pyx_L3_error)
11362 if (unlikely(kw_args > 0)) {
11363 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"pyScalarRecoveryAtNodes") < 0)) __PYX_ERR(0, 701, __pyx_L3_error)
11365 }
else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
11366 goto __pyx_L5_argtuple_error;
11368 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11369 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11370 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11372 __pyx_v_scalars = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_scalars.memview)) __PYX_ERR(0, 701, __pyx_L3_error)
11373 __pyx_v_nodeElementsArray = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementsArray.memview)) __PYX_ERR(0, 702, __pyx_L3_error)
11374 __pyx_v_nodeElementOffsets = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementOffsets.memview)) __PYX_ERR(0, 703, __pyx_L3_error)
11376 goto __pyx_L4_argument_unpacking_done;
11377 __pyx_L5_argtuple_error:;
11378 __Pyx_RaiseArgtupleInvalid(
"pyScalarRecoveryAtNodes", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 701, __pyx_L3_error)
11380 __Pyx_AddTraceback(
"mprans.MeshSmoothing.pyScalarRecoveryAtNodes", __pyx_clineno, __pyx_lineno, __pyx_filename);
11381 __Pyx_RefNannyFinishContext();
11383 __pyx_L4_argument_unpacking_done:;
11384 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_56pyScalarRecoveryAtNodes(__pyx_self, __pyx_v_scalars, __pyx_v_nodeElementsArray, __pyx_v_nodeElementOffsets);
11387 __Pyx_RefNannyFinishContext();
11391 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_56pyScalarRecoveryAtNodes(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_scalars, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets) {
11392 PyObject *__pyx_r = NULL;
11393 __Pyx_RefNannyDeclarations
11394 __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
11395 PyObject *__pyx_t_2 = NULL;
11396 __Pyx_RefNannySetupContext(
"pyScalarRecoveryAtNodes", 0);
11405 __Pyx_XDECREF(__pyx_r);
11414 __pyx_t_1 = __pyx_f_6mprans_13MeshSmoothing_cyScalarRecoveryAtNodes(__pyx_v_scalars, __pyx_v_nodeElementsArray, __pyx_v_nodeElementOffsets);
if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 704, __pyx_L1_error)
11423 __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_t_1, 1, (PyObject *(*)(
char *)) __pyx_memview_get_double, (
int (*)(
char *, PyObject *)) __pyx_memview_set_double, 0);;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 704, __pyx_L1_error)
11424 __Pyx_GOTREF(__pyx_t_2);
11425 __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
11426 __pyx_t_1.memview = NULL;
11427 __pyx_t_1.data = NULL;
11428 __pyx_r = __pyx_t_2;
11442 __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
11443 __Pyx_XDECREF(__pyx_t_2);
11444 __Pyx_AddTraceback(
"mprans.MeshSmoothing.pyScalarRecoveryAtNodes", __pyx_clineno, __pyx_lineno, __pyx_filename);
11447 __PYX_XDEC_MEMVIEW(&__pyx_v_scalars, 1);
11448 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementsArray, 1);
11449 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementOffsets, 1);
11450 __Pyx_XGIVEREF(__pyx_r);
11451 __Pyx_RefNannyFinishContext();
11464 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_59pyScalarRecoveryAtNodesWeighted(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
11465 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_59pyScalarRecoveryAtNodesWeighted = {
"pyScalarRecoveryAtNodesWeighted", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_59pyScalarRecoveryAtNodesWeighted, METH_VARARGS|METH_KEYWORDS, 0};
11466 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_59pyScalarRecoveryAtNodesWeighted(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
11467 __Pyx_memviewslice __pyx_v_scalars = { 0, 0, { 0 }, { 0 }, { 0 } };
11468 __Pyx_memviewslice __pyx_v_nodeElementsArray = { 0, 0, { 0 }, { 0 }, { 0 } };
11469 __Pyx_memviewslice __pyx_v_nodeElementOffsets = { 0, 0, { 0 }, { 0 }, { 0 } };
11470 __Pyx_memviewslice __pyx_v_detJ_array = { 0, 0, { 0 }, { 0 }, { 0 } };
11471 int __pyx_v_nNodes;
11472 PyObject *__pyx_r = 0;
11473 __Pyx_RefNannyDeclarations
11474 __Pyx_RefNannySetupContext(
"pyScalarRecoveryAtNodesWeighted (wrapper)", 0);
11476 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_scalars,&__pyx_n_s_nodeElementsArray,&__pyx_n_s_nodeElementOffsets,&__pyx_n_s_detJ_array,&__pyx_n_s_nNodes,0};
11477 PyObject* values[5] = {0,0,0,0,0};
11478 if (unlikely(__pyx_kwds)) {
11479 Py_ssize_t kw_args;
11480 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
11481 switch (pos_args) {
11482 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
11483 CYTHON_FALLTHROUGH;
11484 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
11485 CYTHON_FALLTHROUGH;
11486 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11487 CYTHON_FALLTHROUGH;
11488 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11489 CYTHON_FALLTHROUGH;
11490 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11491 CYTHON_FALLTHROUGH;
11493 default:
goto __pyx_L5_argtuple_error;
11495 kw_args = PyDict_Size(__pyx_kwds);
11496 switch (pos_args) {
11498 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scalars)) != 0)) kw_args--;
11499 else goto __pyx_L5_argtuple_error;
11500 CYTHON_FALLTHROUGH;
11502 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementsArray)) != 0)) kw_args--;
11504 __Pyx_RaiseArgtupleInvalid(
"pyScalarRecoveryAtNodesWeighted", 1, 5, 5, 1); __PYX_ERR(0, 708, __pyx_L3_error)
11506 CYTHON_FALLTHROUGH;
11508 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementOffsets)) != 0)) kw_args--;
11510 __Pyx_RaiseArgtupleInvalid(
"pyScalarRecoveryAtNodesWeighted", 1, 5, 5, 2); __PYX_ERR(0, 708, __pyx_L3_error)
11512 CYTHON_FALLTHROUGH;
11514 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_detJ_array)) != 0)) kw_args--;
11516 __Pyx_RaiseArgtupleInvalid(
"pyScalarRecoveryAtNodesWeighted", 1, 5, 5, 3); __PYX_ERR(0, 708, __pyx_L3_error)
11518 CYTHON_FALLTHROUGH;
11520 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nNodes)) != 0)) kw_args--;
11522 __Pyx_RaiseArgtupleInvalid(
"pyScalarRecoveryAtNodesWeighted", 1, 5, 5, 4); __PYX_ERR(0, 708, __pyx_L3_error)
11525 if (unlikely(kw_args > 0)) {
11526 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"pyScalarRecoveryAtNodesWeighted") < 0)) __PYX_ERR(0, 708, __pyx_L3_error)
11528 }
else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
11529 goto __pyx_L5_argtuple_error;
11531 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11532 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11533 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11534 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
11535 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
11537 __pyx_v_scalars = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_scalars.memview)) __PYX_ERR(0, 708, __pyx_L3_error)
11538 __pyx_v_nodeElementsArray = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementsArray.memview)) __PYX_ERR(0, 709, __pyx_L3_error)
11539 __pyx_v_nodeElementOffsets = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementOffsets.memview)) __PYX_ERR(0, 710, __pyx_L3_error)
11540 __pyx_v_detJ_array = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[3], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_detJ_array.memview)) __PYX_ERR(0, 711, __pyx_L3_error)
11541 __pyx_v_nNodes = __Pyx_PyInt_As_int(values[4]);
if (unlikely((__pyx_v_nNodes == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 712, __pyx_L3_error)
11543 goto __pyx_L4_argument_unpacking_done;
11544 __pyx_L5_argtuple_error:;
11545 __Pyx_RaiseArgtupleInvalid(
"pyScalarRecoveryAtNodesWeighted", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 708, __pyx_L3_error)
11547 __Pyx_AddTraceback(
"mprans.MeshSmoothing.pyScalarRecoveryAtNodesWeighted", __pyx_clineno, __pyx_lineno, __pyx_filename);
11548 __Pyx_RefNannyFinishContext();
11550 __pyx_L4_argument_unpacking_done:;
11551 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_58pyScalarRecoveryAtNodesWeighted(__pyx_self, __pyx_v_scalars, __pyx_v_nodeElementsArray, __pyx_v_nodeElementOffsets, __pyx_v_detJ_array, __pyx_v_nNodes);
11554 __Pyx_RefNannyFinishContext();
11558 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_58pyScalarRecoveryAtNodesWeighted(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_scalars, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_detJ_array,
int __pyx_v_nNodes) {
11559 PyObject *__pyx_r = NULL;
11560 __Pyx_RefNannyDeclarations
11561 __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
11562 PyObject *__pyx_t_2 = NULL;
11563 __Pyx_RefNannySetupContext(
"pyScalarRecoveryAtNodesWeighted", 0);
11572 __Pyx_XDECREF(__pyx_r);
11581 __pyx_t_1 = __pyx_f_6mprans_13MeshSmoothing_cyScalarRecoveryAtNodesWeighted(__pyx_v_scalars, __pyx_v_nodeElementsArray, __pyx_v_nodeElementOffsets, __pyx_v_detJ_array, __pyx_v_nNodes);
if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 713, __pyx_L1_error)
11590 __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_t_1, 1, (PyObject *(*)(
char *)) __pyx_memview_get_double, (
int (*)(
char *, PyObject *)) __pyx_memview_set_double, 0);;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 713, __pyx_L1_error)
11591 __Pyx_GOTREF(__pyx_t_2);
11592 __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
11593 __pyx_t_1.memview = NULL;
11594 __pyx_t_1.data = NULL;
11595 __pyx_r = __pyx_t_2;
11609 __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
11610 __Pyx_XDECREF(__pyx_t_2);
11611 __Pyx_AddTraceback(
"mprans.MeshSmoothing.pyScalarRecoveryAtNodesWeighted", __pyx_clineno, __pyx_lineno, __pyx_filename);
11614 __PYX_XDEC_MEMVIEW(&__pyx_v_scalars, 1);
11615 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementsArray, 1);
11616 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementOffsets, 1);
11617 __PYX_XDEC_MEMVIEW(&__pyx_v_detJ_array, 1);
11618 __Pyx_XGIVEREF(__pyx_r);
11619 __Pyx_RefNannyFinishContext();
11632 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_61pyVectorRecoveryAtNodes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
11633 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_61pyVectorRecoveryAtNodes = {
"pyVectorRecoveryAtNodes", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_61pyVectorRecoveryAtNodes, METH_VARARGS|METH_KEYWORDS, 0};
11634 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_61pyVectorRecoveryAtNodes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
11635 PyObject *__pyx_v_vectors = 0;
11636 PyObject *__pyx_v_nodeElementsArray = 0;
11637 PyObject *__pyx_v_nodeElementOffsets = 0;
11638 PyObject *__pyx_v_nd = 0;
11639 PyObject *__pyx_r = 0;
11640 __Pyx_RefNannyDeclarations
11641 __Pyx_RefNannySetupContext(
"pyVectorRecoveryAtNodes (wrapper)", 0);
11643 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vectors,&__pyx_n_s_nodeElementsArray,&__pyx_n_s_nodeElementOffsets,&__pyx_n_s_nd,0};
11644 PyObject* values[4] = {0,0,0,0};
11645 if (unlikely(__pyx_kwds)) {
11646 Py_ssize_t kw_args;
11647 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
11648 switch (pos_args) {
11649 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
11650 CYTHON_FALLTHROUGH;
11651 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11652 CYTHON_FALLTHROUGH;
11653 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11654 CYTHON_FALLTHROUGH;
11655 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11656 CYTHON_FALLTHROUGH;
11658 default:
goto __pyx_L5_argtuple_error;
11660 kw_args = PyDict_Size(__pyx_kwds);
11661 switch (pos_args) {
11663 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vectors)) != 0)) kw_args--;
11664 else goto __pyx_L5_argtuple_error;
11665 CYTHON_FALLTHROUGH;
11667 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementsArray)) != 0)) kw_args--;
11669 __Pyx_RaiseArgtupleInvalid(
"pyVectorRecoveryAtNodes", 1, 4, 4, 1); __PYX_ERR(0, 719, __pyx_L3_error)
11671 CYTHON_FALLTHROUGH;
11673 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementOffsets)) != 0)) kw_args--;
11675 __Pyx_RaiseArgtupleInvalid(
"pyVectorRecoveryAtNodes", 1, 4, 4, 2); __PYX_ERR(0, 719, __pyx_L3_error)
11677 CYTHON_FALLTHROUGH;
11679 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nd)) != 0)) kw_args--;
11681 __Pyx_RaiseArgtupleInvalid(
"pyVectorRecoveryAtNodes", 1, 4, 4, 3); __PYX_ERR(0, 719, __pyx_L3_error)
11684 if (unlikely(kw_args > 0)) {
11685 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"pyVectorRecoveryAtNodes") < 0)) __PYX_ERR(0, 719, __pyx_L3_error)
11687 }
else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
11688 goto __pyx_L5_argtuple_error;
11690 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11691 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11692 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11693 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
11695 __pyx_v_vectors = values[0];
11696 __pyx_v_nodeElementsArray = values[1];
11697 __pyx_v_nodeElementOffsets = values[2];
11698 __pyx_v_nd = values[3];
11700 goto __pyx_L4_argument_unpacking_done;
11701 __pyx_L5_argtuple_error:;
11702 __Pyx_RaiseArgtupleInvalid(
"pyVectorRecoveryAtNodes", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 719, __pyx_L3_error)
11704 __Pyx_AddTraceback(
"mprans.MeshSmoothing.pyVectorRecoveryAtNodes", __pyx_clineno, __pyx_lineno, __pyx_filename);
11705 __Pyx_RefNannyFinishContext();
11707 __pyx_L4_argument_unpacking_done:;
11708 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_60pyVectorRecoveryAtNodes(__pyx_self, __pyx_v_vectors, __pyx_v_nodeElementsArray, __pyx_v_nodeElementOffsets, __pyx_v_nd);
11711 __Pyx_RefNannyFinishContext();
11715 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_60pyVectorRecoveryAtNodes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_vectors, PyObject *__pyx_v_nodeElementsArray, PyObject *__pyx_v_nodeElementOffsets, PyObject *__pyx_v_nd) {
11716 PyObject *__pyx_r = NULL;
11717 __Pyx_RefNannyDeclarations
11718 __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
11719 __Pyx_memviewslice __pyx_t_2 = { 0, 0, { 0 }, { 0 }, { 0 } };
11720 __Pyx_memviewslice __pyx_t_3 = { 0, 0, { 0 }, { 0 }, { 0 } };
11722 __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
11723 PyObject *__pyx_t_6 = NULL;
11724 __Pyx_RefNannySetupContext(
"pyVectorRecoveryAtNodes", 0);
11733 __Pyx_XDECREF(__pyx_r);
11734 __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_vectors, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 723, __pyx_L1_error)
11743 __pyx_t_2 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(__pyx_v_nodeElementsArray, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_2.memview)) __PYX_ERR(0, 724, __pyx_L1_error)
11752 __pyx_t_3 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(__pyx_v_nodeElementOffsets, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_3.memview)) __PYX_ERR(0, 725, __pyx_L1_error)
11761 __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_v_nd);
if (unlikely((__pyx_t_4 == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 726, __pyx_L1_error)
11770 __pyx_t_5 = __pyx_f_6mprans_13MeshSmoothing_cyVectorRecoveryAtNodes(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4);
if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 723, __pyx_L1_error)
11771 __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
11772 __pyx_t_1.memview = NULL;
11773 __pyx_t_1.data = NULL;
11774 __PYX_XDEC_MEMVIEW(&__pyx_t_2, 1);
11775 __pyx_t_2.memview = NULL;
11776 __pyx_t_2.data = NULL;
11777 __PYX_XDEC_MEMVIEW(&__pyx_t_3, 1);
11778 __pyx_t_3.memview = NULL;
11779 __pyx_t_3.data = NULL;
11780 __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_t_5, 2, (PyObject *(*)(
char *)) __pyx_memview_get_double, (
int (*)(
char *, PyObject *)) __pyx_memview_set_double, 0);;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 723, __pyx_L1_error)
11781 __Pyx_GOTREF(__pyx_t_6);
11782 __PYX_XDEC_MEMVIEW(&__pyx_t_5, 1);
11783 __pyx_t_5.memview = NULL;
11784 __pyx_t_5.data = NULL;
11785 __pyx_r = __pyx_t_6;
11799 __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
11800 __PYX_XDEC_MEMVIEW(&__pyx_t_2, 1);
11801 __PYX_XDEC_MEMVIEW(&__pyx_t_3, 1);
11802 __PYX_XDEC_MEMVIEW(&__pyx_t_5, 1);
11803 __Pyx_XDECREF(__pyx_t_6);
11804 __Pyx_AddTraceback(
"mprans.MeshSmoothing.pyVectorRecoveryAtNodes", __pyx_clineno, __pyx_lineno, __pyx_filename);
11807 __Pyx_XGIVEREF(__pyx_r);
11808 __Pyx_RefNannyFinishContext();
11821 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_63pyVectorRecoveryAtNodesWeighted(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
11822 static PyMethodDef __pyx_mdef_6mprans_13MeshSmoothing_63pyVectorRecoveryAtNodesWeighted = {
"pyVectorRecoveryAtNodesWeighted", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_6mprans_13MeshSmoothing_63pyVectorRecoveryAtNodesWeighted, METH_VARARGS|METH_KEYWORDS, 0};
11823 static PyObject *__pyx_pw_6mprans_13MeshSmoothing_63pyVectorRecoveryAtNodesWeighted(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
11824 __Pyx_memviewslice __pyx_v_vectors = { 0, 0, { 0 }, { 0 }, { 0 } };
11825 __Pyx_memviewslice __pyx_v_nodeElementsArray = { 0, 0, { 0 }, { 0 }, { 0 } };
11826 __Pyx_memviewslice __pyx_v_nodeElementOffsets = { 0, 0, { 0 }, { 0 }, { 0 } };
11827 __Pyx_memviewslice __pyx_v_detJ_array = { 0, 0, { 0 }, { 0 }, { 0 } };
11829 PyObject *__pyx_r = 0;
11830 __Pyx_RefNannyDeclarations
11831 __Pyx_RefNannySetupContext(
"pyVectorRecoveryAtNodesWeighted (wrapper)", 0);
11833 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vectors,&__pyx_n_s_nodeElementsArray,&__pyx_n_s_nodeElementOffsets,&__pyx_n_s_detJ_array,&__pyx_n_s_nd,0};
11834 PyObject* values[5] = {0,0,0,0,0};
11835 if (unlikely(__pyx_kwds)) {
11836 Py_ssize_t kw_args;
11837 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
11838 switch (pos_args) {
11839 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
11840 CYTHON_FALLTHROUGH;
11841 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
11842 CYTHON_FALLTHROUGH;
11843 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11844 CYTHON_FALLTHROUGH;
11845 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11846 CYTHON_FALLTHROUGH;
11847 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11848 CYTHON_FALLTHROUGH;
11850 default:
goto __pyx_L5_argtuple_error;
11852 kw_args = PyDict_Size(__pyx_kwds);
11853 switch (pos_args) {
11855 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vectors)) != 0)) kw_args--;
11856 else goto __pyx_L5_argtuple_error;
11857 CYTHON_FALLTHROUGH;
11859 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementsArray)) != 0)) kw_args--;
11861 __Pyx_RaiseArgtupleInvalid(
"pyVectorRecoveryAtNodesWeighted", 1, 5, 5, 1); __PYX_ERR(0, 728, __pyx_L3_error)
11863 CYTHON_FALLTHROUGH;
11865 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nodeElementOffsets)) != 0)) kw_args--;
11867 __Pyx_RaiseArgtupleInvalid(
"pyVectorRecoveryAtNodesWeighted", 1, 5, 5, 2); __PYX_ERR(0, 728, __pyx_L3_error)
11869 CYTHON_FALLTHROUGH;
11871 if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_detJ_array)) != 0)) kw_args--;
11873 __Pyx_RaiseArgtupleInvalid(
"pyVectorRecoveryAtNodesWeighted", 1, 5, 5, 3); __PYX_ERR(0, 728, __pyx_L3_error)
11875 CYTHON_FALLTHROUGH;
11877 if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nd)) != 0)) kw_args--;
11879 __Pyx_RaiseArgtupleInvalid(
"pyVectorRecoveryAtNodesWeighted", 1, 5, 5, 4); __PYX_ERR(0, 728, __pyx_L3_error)
11882 if (unlikely(kw_args > 0)) {
11883 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"pyVectorRecoveryAtNodesWeighted") < 0)) __PYX_ERR(0, 728, __pyx_L3_error)
11885 }
else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
11886 goto __pyx_L5_argtuple_error;
11888 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11889 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11890 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11891 values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
11892 values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
11894 __pyx_v_vectors = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[0], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_vectors.memview)) __PYX_ERR(0, 728, __pyx_L3_error)
11895 __pyx_v_nodeElementsArray = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[1], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementsArray.memview)) __PYX_ERR(0, 729, __pyx_L3_error)
11896 __pyx_v_nodeElementOffsets = __Pyx_PyObject_to_MemoryviewSlice_ds_int(values[2], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_nodeElementOffsets.memview)) __PYX_ERR(0, 730, __pyx_L3_error)
11897 __pyx_v_detJ_array = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[3], PyBUF_WRITABLE);
if (unlikely(!__pyx_v_detJ_array.memview)) __PYX_ERR(0, 731, __pyx_L3_error)
11898 __pyx_v_nd = __Pyx_PyInt_As_int(values[4]);
if (unlikely((__pyx_v_nd == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
11900 goto __pyx_L4_argument_unpacking_done;
11901 __pyx_L5_argtuple_error:;
11902 __Pyx_RaiseArgtupleInvalid(
"pyVectorRecoveryAtNodesWeighted", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 728, __pyx_L3_error)
11904 __Pyx_AddTraceback(
"mprans.MeshSmoothing.pyVectorRecoveryAtNodesWeighted", __pyx_clineno, __pyx_lineno, __pyx_filename);
11905 __Pyx_RefNannyFinishContext();
11907 __pyx_L4_argument_unpacking_done:;
11908 __pyx_r = __pyx_pf_6mprans_13MeshSmoothing_62pyVectorRecoveryAtNodesWeighted(__pyx_self, __pyx_v_vectors, __pyx_v_nodeElementsArray, __pyx_v_nodeElementOffsets, __pyx_v_detJ_array, __pyx_v_nd);
11911 __Pyx_RefNannyFinishContext();
11915 static PyObject *__pyx_pf_6mprans_13MeshSmoothing_62pyVectorRecoveryAtNodesWeighted(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_vectors, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_detJ_array,
int __pyx_v_nd) {
11916 PyObject *__pyx_r = NULL;
11917 __Pyx_RefNannyDeclarations
11918 __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
11919 PyObject *__pyx_t_2 = NULL;
11920 __Pyx_RefNannySetupContext(
"pyVectorRecoveryAtNodesWeighted", 0);
11929 __Pyx_XDECREF(__pyx_r);
11938 __pyx_t_1 = __pyx_f_6mprans_13MeshSmoothing_cyVectorRecoveryAtNodesWeighted(__pyx_v_vectors, __pyx_v_nodeElementsArray, __pyx_v_nodeElementOffsets, __pyx_v_detJ_array, __pyx_v_nd);
if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 733, __pyx_L1_error)
11947 __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_t_1, 2, (PyObject *(*)(
char *)) __pyx_memview_get_double, (
int (*)(
char *, PyObject *)) __pyx_memview_set_double, 0);;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 733, __pyx_L1_error)
11948 __Pyx_GOTREF(__pyx_t_2);
11949 __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
11950 __pyx_t_1.memview = NULL;
11951 __pyx_t_1.data = NULL;
11952 __pyx_r = __pyx_t_2;
11966 __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
11967 __Pyx_XDECREF(__pyx_t_2);
11968 __Pyx_AddTraceback(
"mprans.MeshSmoothing.pyVectorRecoveryAtNodesWeighted", __pyx_clineno, __pyx_lineno, __pyx_filename);
11971 __PYX_XDEC_MEMVIEW(&__pyx_v_vectors, 1);
11972 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementsArray, 1);
11973 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeElementOffsets, 1);
11974 __PYX_XDEC_MEMVIEW(&__pyx_v_detJ_array, 1);
11975 __Pyx_XGIVEREF(__pyx_r);
11976 __Pyx_RefNannyFinishContext();
11988 static void __pyx_f_6mprans_13MeshSmoothing_cySmoothNodesLaplace(__Pyx_memviewslice __pyx_v_nodeArray_, __Pyx_memviewslice __pyx_v_nodeStarOffsets, __Pyx_memviewslice __pyx_v_nodeStarArray, __Pyx_memviewslice __pyx_v_nodeMaterialTypes,
int __pyx_v_nNodes_owned,
int __pyx_v_nd,
struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesLaplace *__pyx_optional_args) {
11997 bool __pyx_v_simultaneous = ((bool)0);
12006 bool __pyx_v_smoothBoundaries = ((bool)1);
12007 __Pyx_memviewslice __pyx_v_fixedNodesBoolArray = __pyx_k__5;
12008 double __pyx_v_alpha = ((double)0.);
12009 __Pyx_memviewslice __pyx_v_nodeArray0 = { 0, 0, { 0 }, { 0 }, { 0 } };
12010 double __pyx_v_sum_star[3];
12011 int __pyx_v_nNodes;
12012 bool __pyx_v_fixed_node;
12013 __Pyx_memviewslice __pyx_v_fixed_dir = { 0, 0, { 0 }, { 0 }, { 0 } };
12014 int __pyx_v_nOffset;
12016 __Pyx_RefNannyDeclarations
12019 __Pyx_memviewslice __pyx_t_3 = { 0, 0, { 0 }, { 0 }, { 0 } };
12020 PyObject *__pyx_t_4 = NULL;
12021 PyObject *__pyx_t_5 = NULL;
12022 PyObject *__pyx_t_6 = NULL;
12023 __Pyx_memviewslice __pyx_t_7 = { 0, 0, { 0 }, { 0 }, { 0 } };
12027 Py_ssize_t __pyx_t_11;
12028 Py_ssize_t __pyx_t_12;
12030 Py_ssize_t __pyx_t_14;
12034 Py_ssize_t __pyx_t_18;
12035 Py_ssize_t __pyx_t_19;
12036 Py_ssize_t __pyx_t_20;
12037 Py_ssize_t __pyx_t_21;
12038 Py_ssize_t __pyx_t_22;
12039 Py_ssize_t __pyx_t_23;
12040 Py_ssize_t __pyx_t_24;
12041 Py_ssize_t __pyx_t_25;
12042 Py_ssize_t __pyx_t_26;
12043 Py_ssize_t __pyx_t_27;
12044 Py_ssize_t __pyx_t_28;
12045 Py_ssize_t __pyx_t_29;
12046 Py_ssize_t __pyx_t_30;
12047 Py_ssize_t __pyx_t_31;
12048 Py_ssize_t __pyx_t_32;
12049 Py_ssize_t __pyx_t_33;
12050 Py_ssize_t __pyx_t_34;
12051 Py_ssize_t __pyx_t_35;
12052 Py_ssize_t __pyx_t_36;
12053 Py_ssize_t __pyx_t_37;
12054 Py_ssize_t __pyx_t_38;
12055 Py_ssize_t __pyx_t_39;
12056 Py_ssize_t __pyx_t_40;
12057 Py_ssize_t __pyx_t_41;
12058 Py_ssize_t __pyx_t_42;
12059 Py_ssize_t __pyx_t_43;
12060 Py_ssize_t __pyx_t_44;
12061 Py_ssize_t __pyx_t_45;
12062 Py_ssize_t __pyx_t_46;
12063 Py_ssize_t __pyx_t_47;
12064 Py_ssize_t __pyx_t_48;
12065 Py_ssize_t __pyx_t_49;
12066 Py_ssize_t __pyx_t_50;
12067 Py_ssize_t __pyx_t_51;
12068 Py_ssize_t __pyx_t_52;
12069 Py_ssize_t __pyx_t_53;
12070 Py_ssize_t __pyx_t_54;
12071 Py_ssize_t __pyx_t_55;
12072 Py_ssize_t __pyx_t_56;
12073 Py_ssize_t __pyx_t_57;
12074 Py_ssize_t __pyx_t_58;
12075 Py_ssize_t __pyx_t_59;
12076 Py_ssize_t __pyx_t_60;
12077 Py_ssize_t __pyx_t_61;
12078 Py_ssize_t __pyx_t_62;
12079 Py_ssize_t __pyx_t_63;
12080 Py_ssize_t __pyx_t_64;
12081 Py_ssize_t __pyx_t_65;
12082 Py_ssize_t __pyx_t_66;
12083 Py_ssize_t __pyx_t_67;
12084 Py_ssize_t __pyx_t_68;
12085 Py_ssize_t __pyx_t_69;
12086 Py_ssize_t __pyx_t_70;
12087 Py_ssize_t __pyx_t_71;
12088 Py_ssize_t __pyx_t_72;
12089 Py_ssize_t __pyx_t_73;
12090 Py_ssize_t __pyx_t_74;
12091 Py_ssize_t __pyx_t_75;
12092 Py_ssize_t __pyx_t_76;
12093 Py_ssize_t __pyx_t_77;
12094 Py_ssize_t __pyx_t_78;
12095 Py_ssize_t __pyx_t_79;
12096 Py_ssize_t __pyx_t_80;
12097 Py_ssize_t __pyx_t_81;
12098 Py_ssize_t __pyx_t_82;
12099 Py_ssize_t __pyx_t_83;
12100 Py_ssize_t __pyx_t_84;
12101 Py_ssize_t __pyx_t_85;
12102 Py_ssize_t __pyx_t_86;
12103 Py_ssize_t __pyx_t_87;
12104 Py_ssize_t __pyx_t_88;
12105 Py_ssize_t __pyx_t_89;
12106 __Pyx_RefNannySetupContext(
"cySmoothNodesLaplace", 0);
12107 if (__pyx_optional_args) {
12108 if (__pyx_optional_args->__pyx_n > 0) {
12109 __pyx_v_simultaneous = __pyx_optional_args->simultaneous;
12110 if (__pyx_optional_args->__pyx_n > 1) {
12111 __pyx_v_smoothBoundaries = __pyx_optional_args->smoothBoundaries;
12112 if (__pyx_optional_args->__pyx_n > 2) {
12113 __pyx_v_fixedNodesBoolArray = __pyx_optional_args->fixedNodesBoolArray;
12114 if (__pyx_optional_args->__pyx_n > 3) {
12115 __pyx_v_alpha = __pyx_optional_args->alpha;
12129 __pyx_t_2 = (__pyx_v_simultaneous != 0);
12132 __pyx_t_1 = __pyx_t_2;
12133 goto __pyx_L4_bool_binop_done;
12135 __pyx_t_2 = ((__pyx_v_alpha != 0.0) != 0);
12136 __pyx_t_1 = __pyx_t_2;
12137 __pyx_L4_bool_binop_done:;
12147 __pyx_t_3 = __pyx_memoryview_copy_slice_d_dc_double_c(__pyx_v_nodeArray_);
if (unlikely(!__pyx_t_3.memview)) __PYX_ERR(0, 753, __pyx_L1_error)
12148 __pyx_v_nodeArray0 = __pyx_t_3;
12149 __pyx_t_3.memview = NULL;
12150 __pyx_t_3.data = NULL;
12168 __pyx_v_nNodes = 0;
12177 __pyx_v_fixed_node = 0;
12186 __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 759, __pyx_L1_error)
12187 __Pyx_GOTREF(__pyx_t_5);
12188 __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 759, __pyx_L1_error)
12189 __Pyx_GOTREF(__pyx_t_6);
12190 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
12192 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
12193 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
12194 if (likely(__pyx_t_5)) {
12195 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_6);
12196 __Pyx_INCREF(__pyx_t_5);
12197 __Pyx_INCREF(
function);
12198 __Pyx_DECREF_SET(__pyx_t_6,
function);
12201 __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_int_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_int_3);
12202 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
12203 if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 759, __pyx_L1_error)
12204 __Pyx_GOTREF(__pyx_t_4);
12205 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
12206 __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_4, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 759, __pyx_L1_error)
12207 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
12208 __pyx_v_fixed_dir = __pyx_t_7;
12209 __pyx_t_7.memview = NULL;
12210 __pyx_t_7.data = NULL;
12219 __pyx_t_8 = __pyx_v_nNodes_owned;
12220 __pyx_t_9 = __pyx_t_8;
12221 for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
12222 __pyx_v_node = __pyx_t_10;
12231 (__pyx_v_sum_star[0]) = 0.;
12240 (__pyx_v_sum_star[1]) = 0.;
12249 (__pyx_v_sum_star[2]) = 0.;
12258 __pyx_v_nNodes = 0;
12267 __pyx_t_11 = __pyx_v_node;
12268 if (__pyx_t_11 < 0) __pyx_t_11 += __pyx_v_nodeMaterialTypes.shape[0];
12269 __pyx_t_1 = (((*((
int *) ( (__pyx_v_nodeMaterialTypes.data + __pyx_t_11 * __pyx_v_nodeMaterialTypes.strides[0]) ))) == 0) != 0);
12279 __pyx_t_12 = (__pyx_v_node + 1);
12280 if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_v_nodeStarOffsets.shape[0];
12281 __pyx_t_13 = (*((
int *) ( (__pyx_v_nodeStarOffsets.data + __pyx_t_12 * __pyx_v_nodeStarOffsets.strides[0]) )));
12290 __pyx_t_14 = __pyx_v_node;
12291 if (__pyx_t_14 < 0) __pyx_t_14 += __pyx_v_nodeStarOffsets.shape[0];
12300 __pyx_t_15 = __pyx_t_13;
12301 for (__pyx_t_16 = (*((
int *) ( (__pyx_v_nodeStarOffsets.data + __pyx_t_14 * __pyx_v_nodeStarOffsets.strides[0]) ))); __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
12310 __pyx_v_nOffset = __pyx_t_16;
12319 __pyx_t_1 = ((__pyx_v_simultaneous == 1) != 0);
12330 __pyx_t_18 = __pyx_v_nOffset;
12331 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_nodeStarArray.shape[0];
12332 __pyx_t_19 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_18 * __pyx_v_nodeStarArray.strides[0]) )));
12334 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_nodeArray0.shape[0];
12335 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_nodeArray0.shape[1];
12336 (__pyx_v_sum_star[__pyx_t_17]) = ((__pyx_v_sum_star[__pyx_t_17]) + (*((
double *) ( (( (__pyx_v_nodeArray0.data + __pyx_t_19 * __pyx_v_nodeArray0.strides[0]) ) + __pyx_t_20 * __pyx_v_nodeArray0.strides[1]) ))));
12346 __pyx_t_21 = __pyx_v_nOffset;
12347 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_nodeStarArray.shape[0];
12348 __pyx_t_22 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_21 * __pyx_v_nodeStarArray.strides[0]) )));
12350 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_nodeArray0.shape[0];
12351 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_nodeArray0.shape[1];
12352 (__pyx_v_sum_star[__pyx_t_17]) = ((__pyx_v_sum_star[__pyx_t_17]) + (*((
double *) ( (( (__pyx_v_nodeArray0.data + __pyx_t_22 * __pyx_v_nodeArray0.strides[0]) ) + __pyx_t_23 * __pyx_v_nodeArray0.strides[1]) ))));
12362 __pyx_t_24 = __pyx_v_nOffset;
12363 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_nodeStarArray.shape[0];
12364 __pyx_t_25 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_24 * __pyx_v_nodeStarArray.strides[0]) )));
12366 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_nodeArray0.shape[0];
12367 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_nodeArray0.shape[1];
12368 (__pyx_v_sum_star[__pyx_t_17]) = ((__pyx_v_sum_star[__pyx_t_17]) + (*((
double *) ( (( (__pyx_v_nodeArray0.data + __pyx_t_25 * __pyx_v_nodeArray0.strides[0]) ) + __pyx_t_26 * __pyx_v_nodeArray0.strides[1]) ))));
12389 __pyx_t_27 = __pyx_v_nOffset;
12390 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_nodeStarArray.shape[0];
12391 __pyx_t_28 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_27 * __pyx_v_nodeStarArray.strides[0]) )));
12393 if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_v_nodeArray_.shape[0];
12394 if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_v_nodeArray_.shape[1];
12395 (__pyx_v_sum_star[__pyx_t_17]) = ((__pyx_v_sum_star[__pyx_t_17]) + (*((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_28 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_29 * __pyx_v_nodeArray_.strides[1]) ))));
12405 __pyx_t_30 = __pyx_v_nOffset;
12406 if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_v_nodeStarArray.shape[0];
12407 __pyx_t_31 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_30 * __pyx_v_nodeStarArray.strides[0]) )));
12409 if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_v_nodeArray_.shape[0];
12410 if (__pyx_t_32 < 0) __pyx_t_32 += __pyx_v_nodeArray_.shape[1];
12411 (__pyx_v_sum_star[__pyx_t_17]) = ((__pyx_v_sum_star[__pyx_t_17]) + (*((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_31 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_32 * __pyx_v_nodeArray_.strides[1]) ))));
12421 __pyx_t_33 = __pyx_v_nOffset;
12422 if (__pyx_t_33 < 0) __pyx_t_33 += __pyx_v_nodeStarArray.shape[0];
12423 __pyx_t_34 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_33 * __pyx_v_nodeStarArray.strides[0]) )));
12425 if (__pyx_t_34 < 0) __pyx_t_34 += __pyx_v_nodeArray_.shape[0];
12426 if (__pyx_t_35 < 0) __pyx_t_35 += __pyx_v_nodeArray_.shape[1];
12427 (__pyx_v_sum_star[__pyx_t_17]) = ((__pyx_v_sum_star[__pyx_t_17]) + (*((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_34 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_35 * __pyx_v_nodeArray_.strides[1]) ))));
12438 __pyx_v_nNodes = (__pyx_v_nNodes + 1);
12448 __pyx_t_36 = __pyx_v_node;
12450 if (__pyx_t_36 < 0) __pyx_t_36 += __pyx_v_nodeArray_.shape[0];
12451 if (__pyx_t_37 < 0) __pyx_t_37 += __pyx_v_nodeArray_.shape[1];
12452 *((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_36 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_37 * __pyx_v_nodeArray_.strides[1]) )) = ((__pyx_v_sum_star[0]) / __pyx_v_nNodes);
12461 __pyx_t_38 = __pyx_v_node;
12463 if (__pyx_t_38 < 0) __pyx_t_38 += __pyx_v_nodeArray_.shape[0];
12464 if (__pyx_t_39 < 0) __pyx_t_39 += __pyx_v_nodeArray_.shape[1];
12465 *((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_38 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_39 * __pyx_v_nodeArray_.strides[1]) )) = ((__pyx_v_sum_star[1]) / __pyx_v_nNodes);
12474 __pyx_t_40 = __pyx_v_node;
12476 if (__pyx_t_40 < 0) __pyx_t_40 += __pyx_v_nodeArray_.shape[0];
12477 if (__pyx_t_41 < 0) __pyx_t_41 += __pyx_v_nodeArray_.shape[1];
12478 *((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_40 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_41 * __pyx_v_nodeArray_.strides[1]) )) = ((__pyx_v_sum_star[2]) / __pyx_v_nNodes);
12497 __pyx_t_1 = ((__pyx_v_smoothBoundaries == 1) != 0);
12507 __pyx_v_fixed_node = 0;
12516 __pyx_t_1 = ((((PyObject *) __pyx_v_fixedNodesBoolArray.memview) != Py_None) != 0);
12526 __pyx_t_42 = __pyx_v_node;
12527 if (__pyx_t_42 < 0) __pyx_t_42 += __pyx_v_fixedNodesBoolArray.shape[0];
12528 __pyx_t_1 = (((*((
int *) ( (__pyx_v_fixedNodesBoolArray.data + __pyx_t_42 * __pyx_v_fixedNodesBoolArray.strides[0]) ))) == 1) != 0);
12538 __pyx_t_43 = __pyx_v_node;
12540 if (__pyx_t_43 < 0) __pyx_t_43 += __pyx_v_nodeArray0.shape[0];
12541 if (__pyx_t_44 < 0) __pyx_t_44 += __pyx_v_nodeArray0.shape[1];
12542 (__pyx_v_sum_star[0]) = (*((
double *) ( (( (__pyx_v_nodeArray0.data + __pyx_t_43 * __pyx_v_nodeArray0.strides[0]) ) + __pyx_t_44 * __pyx_v_nodeArray0.strides[1]) )));
12551 __pyx_t_45 = __pyx_v_node;
12553 if (__pyx_t_45 < 0) __pyx_t_45 += __pyx_v_nodeArray0.shape[0];
12554 if (__pyx_t_46 < 0) __pyx_t_46 += __pyx_v_nodeArray0.shape[1];
12555 (__pyx_v_sum_star[1]) = (*((
double *) ( (( (__pyx_v_nodeArray0.data + __pyx_t_45 * __pyx_v_nodeArray0.strides[0]) ) + __pyx_t_46 * __pyx_v_nodeArray0.strides[1]) )));
12564 __pyx_t_47 = __pyx_v_node;
12566 if (__pyx_t_47 < 0) __pyx_t_47 += __pyx_v_nodeArray0.shape[0];
12567 if (__pyx_t_48 < 0) __pyx_t_48 += __pyx_v_nodeArray0.shape[1];
12568 (__pyx_v_sum_star[2]) = (*((
double *) ( (( (__pyx_v_nodeArray0.data + __pyx_t_47 * __pyx_v_nodeArray0.strides[0]) ) + __pyx_t_48 * __pyx_v_nodeArray0.strides[1]) )));
12577 __pyx_v_nNodes = 1;
12586 __pyx_v_fixed_node = 1;
12613 __pyx_t_1 = ((__pyx_v_fixed_node == 0) != 0);
12623 __pyx_t_1 = ((__pyx_v_nd == 2) != 0);
12633 __pyx_f_6mprans_13MeshSmoothing_cyFindBoundaryDirectionTriangle(__pyx_v_fixed_dir, __pyx_v_node, __pyx_v_nodeArray_, __pyx_v_nodeStarOffsets, __pyx_v_nodeStarArray, __pyx_v_nodeMaterialTypes);
12651 __pyx_t_1 = ((__pyx_v_nd == 3) != 0);
12661 __pyx_f_6mprans_13MeshSmoothing_cyFindBoundaryDirectionTetra(__pyx_v_fixed_dir, __pyx_v_node, __pyx_v_nodeArray_, __pyx_v_nodeStarOffsets, __pyx_v_nodeStarArray, __pyx_v_nodeMaterialTypes);
12679 __pyx_t_49 = (__pyx_v_node + 1);
12680 if (__pyx_t_49 < 0) __pyx_t_49 += __pyx_v_nodeStarOffsets.shape[0];
12681 __pyx_t_13 = (*((
int *) ( (__pyx_v_nodeStarOffsets.data + __pyx_t_49 * __pyx_v_nodeStarOffsets.strides[0]) )));
12690 __pyx_t_50 = __pyx_v_node;
12691 if (__pyx_t_50 < 0) __pyx_t_50 += __pyx_v_nodeStarOffsets.shape[0];
12700 __pyx_t_15 = __pyx_t_13;
12701 for (__pyx_t_16 = (*((
int *) ( (__pyx_v_nodeStarOffsets.data + __pyx_t_50 * __pyx_v_nodeStarOffsets.strides[0]) ))); __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
12710 __pyx_v_nOffset = __pyx_t_16;
12719 __pyx_t_1 = ((__pyx_v_simultaneous == 1) != 0);
12730 __pyx_t_51 = __pyx_v_nOffset;
12731 if (__pyx_t_51 < 0) __pyx_t_51 += __pyx_v_nodeStarArray.shape[0];
12732 __pyx_t_52 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_51 * __pyx_v_nodeStarArray.strides[0]) )));
12734 if (__pyx_t_52 < 0) __pyx_t_52 += __pyx_v_nodeArray0.shape[0];
12735 if (__pyx_t_53 < 0) __pyx_t_53 += __pyx_v_nodeArray0.shape[1];
12736 (__pyx_v_sum_star[__pyx_t_17]) = ((__pyx_v_sum_star[__pyx_t_17]) + (*((
double *) ( (( (__pyx_v_nodeArray0.data + __pyx_t_52 * __pyx_v_nodeArray0.strides[0]) ) + __pyx_t_53 * __pyx_v_nodeArray0.strides[1]) ))));
12746 __pyx_t_54 = __pyx_v_nOffset;
12747 if (__pyx_t_54 < 0) __pyx_t_54 += __pyx_v_nodeStarArray.shape[0];
12748 __pyx_t_55 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_54 * __pyx_v_nodeStarArray.strides[0]) )));
12750 if (__pyx_t_55 < 0) __pyx_t_55 += __pyx_v_nodeArray0.shape[0];
12751 if (__pyx_t_56 < 0) __pyx_t_56 += __pyx_v_nodeArray0.shape[1];
12752 (__pyx_v_sum_star[__pyx_t_17]) = ((__pyx_v_sum_star[__pyx_t_17]) + (*((
double *) ( (( (__pyx_v_nodeArray0.data + __pyx_t_55 * __pyx_v_nodeArray0.strides[0]) ) + __pyx_t_56 * __pyx_v_nodeArray0.strides[1]) ))));
12762 __pyx_t_57 = __pyx_v_nOffset;
12763 if (__pyx_t_57 < 0) __pyx_t_57 += __pyx_v_nodeStarArray.shape[0];
12764 __pyx_t_58 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_57 * __pyx_v_nodeStarArray.strides[0]) )));
12766 if (__pyx_t_58 < 0) __pyx_t_58 += __pyx_v_nodeArray0.shape[0];
12767 if (__pyx_t_59 < 0) __pyx_t_59 += __pyx_v_nodeArray0.shape[1];
12768 (__pyx_v_sum_star[__pyx_t_17]) = ((__pyx_v_sum_star[__pyx_t_17]) + (*((
double *) ( (( (__pyx_v_nodeArray0.data + __pyx_t_58 * __pyx_v_nodeArray0.strides[0]) ) + __pyx_t_59 * __pyx_v_nodeArray0.strides[1]) ))));
12789 __pyx_t_60 = __pyx_v_nOffset;
12790 if (__pyx_t_60 < 0) __pyx_t_60 += __pyx_v_nodeStarArray.shape[0];
12791 __pyx_t_61 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_60 * __pyx_v_nodeStarArray.strides[0]) )));
12793 if (__pyx_t_61 < 0) __pyx_t_61 += __pyx_v_nodeArray_.shape[0];
12794 if (__pyx_t_62 < 0) __pyx_t_62 += __pyx_v_nodeArray_.shape[1];
12795 (__pyx_v_sum_star[__pyx_t_17]) = ((__pyx_v_sum_star[__pyx_t_17]) + (*((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_61 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_62 * __pyx_v_nodeArray_.strides[1]) ))));
12805 __pyx_t_63 = __pyx_v_nOffset;
12806 if (__pyx_t_63 < 0) __pyx_t_63 += __pyx_v_nodeStarArray.shape[0];
12807 __pyx_t_64 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_63 * __pyx_v_nodeStarArray.strides[0]) )));
12809 if (__pyx_t_64 < 0) __pyx_t_64 += __pyx_v_nodeArray_.shape[0];
12810 if (__pyx_t_65 < 0) __pyx_t_65 += __pyx_v_nodeArray_.shape[1];
12811 (__pyx_v_sum_star[__pyx_t_17]) = ((__pyx_v_sum_star[__pyx_t_17]) + (*((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_64 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_65 * __pyx_v_nodeArray_.strides[1]) ))));
12821 __pyx_t_66 = __pyx_v_nOffset;
12822 if (__pyx_t_66 < 0) __pyx_t_66 += __pyx_v_nodeStarArray.shape[0];
12823 __pyx_t_67 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_66 * __pyx_v_nodeStarArray.strides[0]) )));
12825 if (__pyx_t_67 < 0) __pyx_t_67 += __pyx_v_nodeArray_.shape[0];
12826 if (__pyx_t_68 < 0) __pyx_t_68 += __pyx_v_nodeArray_.shape[1];
12827 (__pyx_v_sum_star[__pyx_t_17]) = ((__pyx_v_sum_star[__pyx_t_17]) + (*((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_67 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_68 * __pyx_v_nodeArray_.strides[1]) ))));
12838 __pyx_v_nNodes = (__pyx_v_nNodes + 1);
12857 __pyx_t_69 = __pyx_v_node;
12859 if (__pyx_t_69 < 0) __pyx_t_69 += __pyx_v_nodeArray_.shape[0];
12860 if (__pyx_t_70 < 0) __pyx_t_70 += __pyx_v_nodeArray_.shape[1];
12862 if (__pyx_t_71 < 0) __pyx_t_71 += __pyx_v_fixed_dir.shape[0];
12863 __pyx_t_72 = __pyx_v_node;
12865 if (__pyx_t_72 < 0) __pyx_t_72 += __pyx_v_nodeArray_.shape[0];
12866 if (__pyx_t_73 < 0) __pyx_t_73 += __pyx_v_nodeArray_.shape[1];
12867 *((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_72 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_73 * __pyx_v_nodeArray_.strides[1]) )) += ((((__pyx_v_sum_star[0]) / __pyx_v_nNodes) - (*((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_69 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_70 * __pyx_v_nodeArray_.strides[1]) )))) * (*((
double *) ( (__pyx_v_fixed_dir.data + __pyx_t_71 * __pyx_v_fixed_dir.strides[0]) ))));
12876 __pyx_t_74 = __pyx_v_node;
12878 if (__pyx_t_74 < 0) __pyx_t_74 += __pyx_v_nodeArray_.shape[0];
12879 if (__pyx_t_75 < 0) __pyx_t_75 += __pyx_v_nodeArray_.shape[1];
12881 if (__pyx_t_76 < 0) __pyx_t_76 += __pyx_v_fixed_dir.shape[0];
12882 __pyx_t_77 = __pyx_v_node;
12884 if (__pyx_t_77 < 0) __pyx_t_77 += __pyx_v_nodeArray_.shape[0];
12885 if (__pyx_t_78 < 0) __pyx_t_78 += __pyx_v_nodeArray_.shape[1];
12886 *((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_77 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_78 * __pyx_v_nodeArray_.strides[1]) )) += ((((__pyx_v_sum_star[1]) / __pyx_v_nNodes) - (*((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_74 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_75 * __pyx_v_nodeArray_.strides[1]) )))) * (*((
double *) ( (__pyx_v_fixed_dir.data + __pyx_t_76 * __pyx_v_fixed_dir.strides[0]) ))));
12895 __pyx_t_79 = __pyx_v_node;
12897 if (__pyx_t_79 < 0) __pyx_t_79 += __pyx_v_nodeArray_.shape[0];
12898 if (__pyx_t_80 < 0) __pyx_t_80 += __pyx_v_nodeArray_.shape[1];
12900 if (__pyx_t_81 < 0) __pyx_t_81 += __pyx_v_fixed_dir.shape[0];
12901 __pyx_t_82 = __pyx_v_node;
12903 if (__pyx_t_82 < 0) __pyx_t_82 += __pyx_v_nodeArray_.shape[0];
12904 if (__pyx_t_83 < 0) __pyx_t_83 += __pyx_v_nodeArray_.shape[1];
12905 *((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_82 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_83 * __pyx_v_nodeArray_.strides[1]) )) += ((((__pyx_v_sum_star[2]) / __pyx_v_nNodes) - (*((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_79 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_80 * __pyx_v_nodeArray_.strides[1]) )))) * (*((
double *) ( (__pyx_v_fixed_dir.data + __pyx_t_81 * __pyx_v_fixed_dir.strides[0]) ))));
12925 __pyx_t_84 = __pyx_v_node;
12927 if (__pyx_t_84 < 0) __pyx_t_84 += __pyx_v_nodeArray0.shape[0];
12928 if (__pyx_t_85 < 0) __pyx_t_85 += __pyx_v_nodeArray0.shape[1];
12929 (__pyx_v_sum_star[0]) = (*((
double *) ( (( (__pyx_v_nodeArray0.data + __pyx_t_84 * __pyx_v_nodeArray0.strides[0]) ) + __pyx_t_85 * __pyx_v_nodeArray0.strides[1]) )));
12938 __pyx_t_86 = __pyx_v_node;
12940 if (__pyx_t_86 < 0) __pyx_t_86 += __pyx_v_nodeArray0.shape[0];
12941 if (__pyx_t_87 < 0) __pyx_t_87 += __pyx_v_nodeArray0.shape[1];
12942 (__pyx_v_sum_star[1]) = (*((
double *) ( (( (__pyx_v_nodeArray0.data + __pyx_t_86 * __pyx_v_nodeArray0.strides[0]) ) + __pyx_t_87 * __pyx_v_nodeArray0.strides[1]) )));
12951 __pyx_t_88 = __pyx_v_node;
12953 if (__pyx_t_88 < 0) __pyx_t_88 += __pyx_v_nodeArray0.shape[0];
12954 if (__pyx_t_89 < 0) __pyx_t_89 += __pyx_v_nodeArray0.shape[1];
12955 (__pyx_v_sum_star[2]) = (*((
double *) ( (( (__pyx_v_nodeArray0.data + __pyx_t_88 * __pyx_v_nodeArray0.strides[0]) ) + __pyx_t_89 * __pyx_v_nodeArray0.strides[1]) )));
12964 __pyx_v_nNodes = 1;
12973 __pyx_v_fixed_node = 1;
12989 __PYX_XDEC_MEMVIEW(&__pyx_t_3, 1);
12990 __Pyx_XDECREF(__pyx_t_4);
12991 __Pyx_XDECREF(__pyx_t_5);
12992 __Pyx_XDECREF(__pyx_t_6);
12993 __PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
12994 __Pyx_WriteUnraisable(
"mprans.MeshSmoothing.cySmoothNodesLaplace", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
12996 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray0, 1);
12997 __PYX_XDEC_MEMVIEW(&__pyx_v_fixed_dir, 1);
12998 __Pyx_RefNannyFinishContext();
13009 static void __pyx_f_6mprans_13MeshSmoothing_cySmoothNodesCentroid(__Pyx_memviewslice __pyx_v_nodeArray_, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_nodeMaterialTypes, __Pyx_memviewslice __pyx_v_elementVolumesArray, __Pyx_memviewslice __pyx_v_elementBarycentersArray, __Pyx_memviewslice __pyx_v_elementNodesArray,
int __pyx_v_nNodes_owned, CYTHON_UNUSED __Pyx_memviewslice __pyx_v_fixedNodesBoolArray,
struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesCentroid *__pyx_optional_args) {
13018 bool __pyx_v_simultaneous = ((bool)0);
13019 double __pyx_v_alpha = ((double)0.);
13020 __Pyx_memviewslice __pyx_v_nodeArray0 = { 0, 0, { 0 }, { 0 }, { 0 } };
13021 double __pyx_v_sum_star[3];
13022 double __pyx_v_areas;
13023 CYTHON_UNUSED
int __pyx_v_nNodes_star;
13024 CYTHON_UNUSED
double __pyx_v_var;
13025 __Pyx_memviewslice __pyx_v_nA = { 0, 0, { 0 }, { 0 }, { 0 } };
13026 __Pyx_memviewslice __pyx_v_nB = { 0, 0, { 0 }, { 0 }, { 0 } };
13027 __Pyx_memviewslice __pyx_v_nC = { 0, 0, { 0 }, { 0 }, { 0 } };
13029 int __pyx_v_eOffset;
13031 __Pyx_RefNannyDeclarations
13034 __Pyx_memviewslice __pyx_t_3 = { 0, 0, { 0 }, { 0 }, { 0 } };
13038 Py_ssize_t __pyx_t_7;
13039 Py_ssize_t __pyx_t_8;
13041 Py_ssize_t __pyx_t_10;
13044 Py_ssize_t __pyx_t_13;
13046 Py_ssize_t __pyx_t_15;
13047 Py_ssize_t __pyx_t_16;
13048 Py_ssize_t __pyx_t_17;
13049 Py_ssize_t __pyx_t_18;
13050 Py_ssize_t __pyx_t_19;
13051 Py_ssize_t __pyx_t_20;
13052 Py_ssize_t __pyx_t_21;
13053 Py_ssize_t __pyx_t_22;
13054 Py_ssize_t __pyx_t_23;
13055 Py_ssize_t __pyx_t_24;
13056 Py_ssize_t __pyx_t_25;
13057 Py_ssize_t __pyx_t_26;
13058 Py_ssize_t __pyx_t_27;
13059 Py_ssize_t __pyx_t_28;
13060 Py_ssize_t __pyx_t_29;
13061 Py_ssize_t __pyx_t_30;
13062 Py_ssize_t __pyx_t_31;
13063 Py_ssize_t __pyx_t_32;
13064 Py_ssize_t __pyx_t_33;
13065 Py_ssize_t __pyx_t_34;
13066 Py_ssize_t __pyx_t_35;
13067 Py_ssize_t __pyx_t_36;
13068 Py_ssize_t __pyx_t_37;
13069 Py_ssize_t __pyx_t_38;
13070 Py_ssize_t __pyx_t_39;
13071 Py_ssize_t __pyx_t_40;
13072 Py_ssize_t __pyx_t_41;
13073 Py_ssize_t __pyx_t_42;
13074 Py_ssize_t __pyx_t_43;
13075 Py_ssize_t __pyx_t_44;
13076 Py_ssize_t __pyx_t_45;
13077 Py_ssize_t __pyx_t_46;
13078 Py_ssize_t __pyx_t_47;
13079 __Pyx_memviewslice __pyx_t_48 = { 0, 0, { 0 }, { 0 }, { 0 } };
13080 Py_ssize_t __pyx_t_49;
13081 Py_ssize_t __pyx_t_50;
13082 Py_ssize_t __pyx_t_51;
13083 Py_ssize_t __pyx_t_52;
13084 Py_ssize_t __pyx_t_53;
13085 Py_ssize_t __pyx_t_54;
13086 Py_ssize_t __pyx_t_55;
13087 Py_ssize_t __pyx_t_56;
13088 Py_ssize_t __pyx_t_57;
13089 Py_ssize_t __pyx_t_58;
13090 Py_ssize_t __pyx_t_59;
13091 Py_ssize_t __pyx_t_60;
13092 Py_ssize_t __pyx_t_61;
13093 Py_ssize_t __pyx_t_62;
13094 Py_ssize_t __pyx_t_63;
13095 Py_ssize_t __pyx_t_64;
13096 Py_ssize_t __pyx_t_65;
13097 Py_ssize_t __pyx_t_66;
13098 Py_ssize_t __pyx_t_67;
13099 Py_ssize_t __pyx_t_68;
13100 __Pyx_RefNannySetupContext(
"cySmoothNodesCentroid", 0);
13101 if (__pyx_optional_args) {
13102 if (__pyx_optional_args->__pyx_n > 0) {
13103 __pyx_v_simultaneous = __pyx_optional_args->simultaneous;
13104 if (__pyx_optional_args->__pyx_n > 2) {
13105 __pyx_v_alpha = __pyx_optional_args->alpha;
13117 __pyx_t_2 = (__pyx_v_simultaneous != 0);
13120 __pyx_t_1 = __pyx_t_2;
13121 goto __pyx_L4_bool_binop_done;
13123 __pyx_t_2 = ((__pyx_v_alpha != 0.0) != 0);
13124 __pyx_t_1 = __pyx_t_2;
13125 __pyx_L4_bool_binop_done:;
13135 __pyx_t_3 = __pyx_memoryview_copy_slice_d_dc_double_c(__pyx_v_nodeArray_);
if (unlikely(!__pyx_t_3.memview)) __PYX_ERR(0, 848, __pyx_L1_error)
13136 __pyx_v_nodeArray0 = __pyx_t_3;
13137 __pyx_t_3.memview = NULL;
13138 __pyx_t_3.data = NULL;
13156 __pyx_v_areas = 0.;
13165 __pyx_v_nNodes_star = 0;
13183 __pyx_t_4 = __pyx_v_nNodes_owned;
13184 __pyx_t_5 = __pyx_t_4;
13185 for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
13186 __pyx_v_node = __pyx_t_6;
13195 (__pyx_v_sum_star[0]) = 0.;
13204 (__pyx_v_sum_star[1]) = 0.;
13213 (__pyx_v_sum_star[2]) = 0.;
13222 __pyx_v_areas = 0.;
13231 __pyx_t_7 = __pyx_v_node;
13232 if (__pyx_t_7 < 0) __pyx_t_7 += __pyx_v_nodeMaterialTypes.shape[0];
13233 __pyx_t_1 = (((*((
int *) ( (__pyx_v_nodeMaterialTypes.data + __pyx_t_7 * __pyx_v_nodeMaterialTypes.strides[0]) ))) == 0) != 0);
13243 __pyx_t_8 = (__pyx_v_node + 1);
13244 if (__pyx_t_8 < 0) __pyx_t_8 += __pyx_v_nodeElementOffsets.shape[0];
13245 __pyx_t_9 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_8 * __pyx_v_nodeElementOffsets.strides[0]) )));
13254 __pyx_t_10 = __pyx_v_node;
13255 if (__pyx_t_10 < 0) __pyx_t_10 += __pyx_v_nodeElementOffsets.shape[0];
13264 __pyx_t_11 = __pyx_t_9;
13265 for (__pyx_t_12 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_10 * __pyx_v_nodeElementOffsets.strides[0]) ))); __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
13274 __pyx_v_eOffset = __pyx_t_12;
13283 __pyx_t_13 = __pyx_v_eOffset;
13284 if (__pyx_t_13 < 0) __pyx_t_13 += __pyx_v_nodeElementsArray.shape[0];
13285 __pyx_v_eN = (*((
int *) ( (__pyx_v_nodeElementsArray.data + __pyx_t_13 * __pyx_v_nodeElementsArray.strides[0]) )));
13295 __pyx_t_15 = __pyx_v_eN;
13297 if (__pyx_t_15 < 0) __pyx_t_15 += __pyx_v_elementBarycentersArray.shape[0];
13298 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_elementBarycentersArray.shape[1];
13299 __pyx_t_17 = __pyx_v_eN;
13300 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_elementVolumesArray.shape[0];
13301 (__pyx_v_sum_star[__pyx_t_14]) = ((__pyx_v_sum_star[__pyx_t_14]) + ((*((
double *) ( (( (__pyx_v_elementBarycentersArray.data + __pyx_t_15 * __pyx_v_elementBarycentersArray.strides[0]) ) + __pyx_t_16 * __pyx_v_elementBarycentersArray.strides[1]) ))) * (*((
double *) ( (__pyx_v_elementVolumesArray.data + __pyx_t_17 * __pyx_v_elementVolumesArray.strides[0]) )))));
13311 __pyx_t_18 = __pyx_v_eN;
13313 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_elementBarycentersArray.shape[0];
13314 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_elementBarycentersArray.shape[1];
13315 __pyx_t_20 = __pyx_v_eN;
13316 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_elementVolumesArray.shape[0];
13317 (__pyx_v_sum_star[__pyx_t_14]) = ((__pyx_v_sum_star[__pyx_t_14]) + ((*((
double *) ( (( (__pyx_v_elementBarycentersArray.data + __pyx_t_18 * __pyx_v_elementBarycentersArray.strides[0]) ) + __pyx_t_19 * __pyx_v_elementBarycentersArray.strides[1]) ))) * (*((
double *) ( (__pyx_v_elementVolumesArray.data + __pyx_t_20 * __pyx_v_elementVolumesArray.strides[0]) )))));
13327 __pyx_t_21 = __pyx_v_eN;
13329 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_elementBarycentersArray.shape[0];
13330 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_elementBarycentersArray.shape[1];
13331 __pyx_t_23 = __pyx_v_eN;
13332 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_elementVolumesArray.shape[0];
13333 (__pyx_v_sum_star[__pyx_t_14]) = ((__pyx_v_sum_star[__pyx_t_14]) + ((*((
double *) ( (( (__pyx_v_elementBarycentersArray.data + __pyx_t_21 * __pyx_v_elementBarycentersArray.strides[0]) ) + __pyx_t_22 * __pyx_v_elementBarycentersArray.strides[1]) ))) * (*((
double *) ( (__pyx_v_elementVolumesArray.data + __pyx_t_23 * __pyx_v_elementVolumesArray.strides[0]) )))));
13342 __pyx_t_24 = __pyx_v_eN;
13343 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_elementVolumesArray.shape[0];
13344 __pyx_v_areas = (__pyx_v_areas + (*((
double *) ( (__pyx_v_elementVolumesArray.data + __pyx_t_24 * __pyx_v_elementVolumesArray.strides[0]) ))));
13354 __pyx_t_1 = ((__pyx_v_alpha != 0.0) != 0);
13364 __pyx_t_25 = __pyx_v_node;
13366 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_nodeArray0.shape[0];
13367 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_nodeArray0.shape[1];
13368 __pyx_t_27 = __pyx_v_node;
13370 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_nodeArray_.shape[0];
13371 if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_v_nodeArray_.shape[1];
13372 *((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_27 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_28 * __pyx_v_nodeArray_.strides[1]) )) = ((__pyx_v_alpha * (*((
double *) ( (( (__pyx_v_nodeArray0.data + __pyx_t_25 * __pyx_v_nodeArray0.strides[0]) ) + __pyx_t_26 * __pyx_v_nodeArray0.strides[1]) )))) + (((1.0 - __pyx_v_alpha) * (__pyx_v_sum_star[0])) / __pyx_v_areas));
13381 __pyx_t_29 = __pyx_v_node;
13383 if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_v_nodeArray0.shape[0];
13384 if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_v_nodeArray0.shape[1];
13385 __pyx_t_31 = __pyx_v_node;
13387 if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_v_nodeArray_.shape[0];
13388 if (__pyx_t_32 < 0) __pyx_t_32 += __pyx_v_nodeArray_.shape[1];
13389 *((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_31 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_32 * __pyx_v_nodeArray_.strides[1]) )) = ((__pyx_v_alpha * (*((
double *) ( (( (__pyx_v_nodeArray0.data + __pyx_t_29 * __pyx_v_nodeArray0.strides[0]) ) + __pyx_t_30 * __pyx_v_nodeArray0.strides[1]) )))) + (((1.0 - __pyx_v_alpha) * (__pyx_v_sum_star[1])) / __pyx_v_areas));
13398 __pyx_t_33 = __pyx_v_node;
13400 if (__pyx_t_33 < 0) __pyx_t_33 += __pyx_v_nodeArray0.shape[0];
13401 if (__pyx_t_34 < 0) __pyx_t_34 += __pyx_v_nodeArray0.shape[1];
13402 __pyx_t_35 = __pyx_v_node;
13404 if (__pyx_t_35 < 0) __pyx_t_35 += __pyx_v_nodeArray_.shape[0];
13405 if (__pyx_t_36 < 0) __pyx_t_36 += __pyx_v_nodeArray_.shape[1];
13406 *((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_35 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_36 * __pyx_v_nodeArray_.strides[1]) )) = ((__pyx_v_alpha * (*((
double *) ( (( (__pyx_v_nodeArray0.data + __pyx_t_33 * __pyx_v_nodeArray0.strides[0]) ) + __pyx_t_34 * __pyx_v_nodeArray0.strides[1]) )))) + (((1.0 - __pyx_v_alpha) * (__pyx_v_sum_star[2])) / __pyx_v_areas));
13426 __pyx_t_37 = __pyx_v_node;
13428 if (__pyx_t_37 < 0) __pyx_t_37 += __pyx_v_nodeArray_.shape[0];
13429 if (__pyx_t_38 < 0) __pyx_t_38 += __pyx_v_nodeArray_.shape[1];
13430 *((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_37 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_38 * __pyx_v_nodeArray_.strides[1]) )) = ((__pyx_v_sum_star[0]) / __pyx_v_areas);
13439 __pyx_t_39 = __pyx_v_node;
13441 if (__pyx_t_39 < 0) __pyx_t_39 += __pyx_v_nodeArray_.shape[0];
13442 if (__pyx_t_40 < 0) __pyx_t_40 += __pyx_v_nodeArray_.shape[1];
13443 *((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_39 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_40 * __pyx_v_nodeArray_.strides[1]) )) = ((__pyx_v_sum_star[1]) / __pyx_v_areas);
13452 __pyx_t_41 = __pyx_v_node;
13454 if (__pyx_t_41 < 0) __pyx_t_41 += __pyx_v_nodeArray_.shape[0];
13455 if (__pyx_t_42 < 0) __pyx_t_42 += __pyx_v_nodeArray_.shape[1];
13456 *((
double *) ( (( (__pyx_v_nodeArray_.data + __pyx_t_41 * __pyx_v_nodeArray_.strides[0]) ) + __pyx_t_42 * __pyx_v_nodeArray_.strides[1]) )) = ((__pyx_v_sum_star[2]) / __pyx_v_areas);
13467 __pyx_t_1 = ((!(__pyx_v_simultaneous != 0)) != 0);
13477 __pyx_t_43 = (__pyx_v_node + 1);
13478 if (__pyx_t_43 < 0) __pyx_t_43 += __pyx_v_nodeElementOffsets.shape[0];
13479 __pyx_t_9 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_43 * __pyx_v_nodeElementOffsets.strides[0]) )));
13488 __pyx_t_44 = __pyx_v_node;
13489 if (__pyx_t_44 < 0) __pyx_t_44 += __pyx_v_nodeElementOffsets.shape[0];
13498 __pyx_t_11 = __pyx_t_9;
13499 for (__pyx_t_12 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_44 * __pyx_v_nodeElementOffsets.strides[0]) ))); __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
13508 __pyx_v_eOffset = __pyx_t_12;
13517 __pyx_t_45 = __pyx_v_eOffset;
13518 if (__pyx_t_45 < 0) __pyx_t_45 += __pyx_v_nodeElementsArray.shape[0];
13519 __pyx_v_eN = (*((
int *) ( (__pyx_v_nodeElementsArray.data + __pyx_t_45 * __pyx_v_nodeElementsArray.strides[0]) )));
13528 __pyx_t_46 = __pyx_v_eN;
13530 if (__pyx_t_46 < 0) __pyx_t_46 += __pyx_v_elementNodesArray.shape[0];
13531 if (__pyx_t_47 < 0) __pyx_t_47 += __pyx_v_elementNodesArray.shape[1];
13532 __pyx_t_48.data = __pyx_v_nodeArray_.data;
13533 __pyx_t_48.memview = __pyx_v_nodeArray_.memview;
13534 __PYX_INC_MEMVIEW(&__pyx_t_48, 0);
13536 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_46 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_47 * __pyx_v_elementNodesArray.strides[1]) )));
13537 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray_.shape[0];
13538 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray_.strides[0];
13539 if (__pyx_tmp_idx < 0)
13540 __pyx_tmp_idx += __pyx_tmp_shape;
13541 if ((0)) __PYX_ERR(0, 890, __pyx_L1_error)
13542 __pyx_t_48.data += __pyx_tmp_idx * __pyx_tmp_stride;
13545 __pyx_t_48.shape[0] = __pyx_v_nodeArray_.shape[1];
13546 __pyx_t_48.strides[0] = __pyx_v_nodeArray_.strides[1];
13547 __pyx_t_48.suboffsets[0] = -1;
13549 __PYX_XDEC_MEMVIEW(&__pyx_v_nA, 1);
13550 __pyx_v_nA = __pyx_t_48;
13551 __pyx_t_48.memview = NULL;
13552 __pyx_t_48.data = NULL;
13561 __pyx_t_49 = __pyx_v_eN;
13563 if (__pyx_t_49 < 0) __pyx_t_49 += __pyx_v_elementNodesArray.shape[0];
13564 if (__pyx_t_50 < 0) __pyx_t_50 += __pyx_v_elementNodesArray.shape[1];
13565 __pyx_t_48.data = __pyx_v_nodeArray_.data;
13566 __pyx_t_48.memview = __pyx_v_nodeArray_.memview;
13567 __PYX_INC_MEMVIEW(&__pyx_t_48, 0);
13569 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_49 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_50 * __pyx_v_elementNodesArray.strides[1]) )));
13570 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray_.shape[0];
13571 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray_.strides[0];
13572 if (__pyx_tmp_idx < 0)
13573 __pyx_tmp_idx += __pyx_tmp_shape;
13574 if ((0)) __PYX_ERR(0, 891, __pyx_L1_error)
13575 __pyx_t_48.data += __pyx_tmp_idx * __pyx_tmp_stride;
13578 __pyx_t_48.shape[0] = __pyx_v_nodeArray_.shape[1];
13579 __pyx_t_48.strides[0] = __pyx_v_nodeArray_.strides[1];
13580 __pyx_t_48.suboffsets[0] = -1;
13582 __PYX_XDEC_MEMVIEW(&__pyx_v_nB, 1);
13583 __pyx_v_nB = __pyx_t_48;
13584 __pyx_t_48.memview = NULL;
13585 __pyx_t_48.data = NULL;
13594 __pyx_t_51 = __pyx_v_eN;
13596 if (__pyx_t_51 < 0) __pyx_t_51 += __pyx_v_elementNodesArray.shape[0];
13597 if (__pyx_t_52 < 0) __pyx_t_52 += __pyx_v_elementNodesArray.shape[1];
13598 __pyx_t_48.data = __pyx_v_nodeArray_.data;
13599 __pyx_t_48.memview = __pyx_v_nodeArray_.memview;
13600 __PYX_INC_MEMVIEW(&__pyx_t_48, 0);
13602 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_51 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_52 * __pyx_v_elementNodesArray.strides[1]) )));
13603 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray_.shape[0];
13604 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray_.strides[0];
13605 if (__pyx_tmp_idx < 0)
13606 __pyx_tmp_idx += __pyx_tmp_shape;
13607 if ((0)) __PYX_ERR(0, 892, __pyx_L1_error)
13608 __pyx_t_48.data += __pyx_tmp_idx * __pyx_tmp_stride;
13611 __pyx_t_48.shape[0] = __pyx_v_nodeArray_.shape[1];
13612 __pyx_t_48.strides[0] = __pyx_v_nodeArray_.strides[1];
13613 __pyx_t_48.suboffsets[0] = -1;
13615 __PYX_XDEC_MEMVIEW(&__pyx_v_nC, 1);
13616 __pyx_v_nC = __pyx_t_48;
13617 __pyx_t_48.memview = NULL;
13618 __pyx_t_48.data = NULL;
13627 __pyx_t_53 = __pyx_v_eN;
13628 if (__pyx_t_53 < 0) __pyx_t_53 += __pyx_v_elementVolumesArray.shape[0];
13629 *((
double *) ( (__pyx_v_elementVolumesArray.data + __pyx_t_53 * __pyx_v_elementVolumesArray.strides[0]) )) = __pyx_f_6mprans_13MeshSmoothing_cyGetElementVolumeTriangle(__pyx_v_nA, __pyx_v_nB, __pyx_v_nC);
13639 if (__pyx_t_54 < 0) __pyx_t_54 += __pyx_v_nA.shape[0];
13641 if (__pyx_t_55 < 0) __pyx_t_55 += __pyx_v_nB.shape[0];
13643 if (__pyx_t_56 < 0) __pyx_t_56 += __pyx_v_nC.shape[0];
13644 __pyx_t_57 = __pyx_v_eN;
13646 if (__pyx_t_57 < 0) __pyx_t_57 += __pyx_v_elementBarycentersArray.shape[0];
13647 if (__pyx_t_58 < 0) __pyx_t_58 += __pyx_v_elementBarycentersArray.shape[1];
13648 *((
double *) ( (( (__pyx_v_elementBarycentersArray.data + __pyx_t_57 * __pyx_v_elementBarycentersArray.strides[0]) ) + __pyx_t_58 * __pyx_v_elementBarycentersArray.strides[1]) )) = ((((*((
double *) ( (__pyx_v_nA.data + __pyx_t_54 * __pyx_v_nA.strides[0]) ))) + (*((
double *) ( (__pyx_v_nB.data + __pyx_t_55 * __pyx_v_nB.strides[0]) )))) + (*((
double *) ( (__pyx_v_nC.data + __pyx_t_56 * __pyx_v_nC.strides[0]) )))) / 3.);
13658 if (__pyx_t_59 < 0) __pyx_t_59 += __pyx_v_nA.shape[0];
13660 if (__pyx_t_60 < 0) __pyx_t_60 += __pyx_v_nB.shape[0];
13662 if (__pyx_t_61 < 0) __pyx_t_61 += __pyx_v_nC.shape[0];
13663 __pyx_t_62 = __pyx_v_eN;
13665 if (__pyx_t_62 < 0) __pyx_t_62 += __pyx_v_elementBarycentersArray.shape[0];
13666 if (__pyx_t_63 < 0) __pyx_t_63 += __pyx_v_elementBarycentersArray.shape[1];
13667 *((
double *) ( (( (__pyx_v_elementBarycentersArray.data + __pyx_t_62 * __pyx_v_elementBarycentersArray.strides[0]) ) + __pyx_t_63 * __pyx_v_elementBarycentersArray.strides[1]) )) = ((((*((
double *) ( (__pyx_v_nA.data + __pyx_t_59 * __pyx_v_nA.strides[0]) ))) + (*((
double *) ( (__pyx_v_nB.data + __pyx_t_60 * __pyx_v_nB.strides[0]) )))) + (*((
double *) ( (__pyx_v_nC.data + __pyx_t_61 * __pyx_v_nC.strides[0]) )))) / 3.);
13677 if (__pyx_t_64 < 0) __pyx_t_64 += __pyx_v_nA.shape[0];
13679 if (__pyx_t_65 < 0) __pyx_t_65 += __pyx_v_nB.shape[0];
13681 if (__pyx_t_66 < 0) __pyx_t_66 += __pyx_v_nC.shape[0];
13682 __pyx_t_67 = __pyx_v_eN;
13684 if (__pyx_t_67 < 0) __pyx_t_67 += __pyx_v_elementBarycentersArray.shape[0];
13685 if (__pyx_t_68 < 0) __pyx_t_68 += __pyx_v_elementBarycentersArray.shape[1];
13686 *((
double *) ( (( (__pyx_v_elementBarycentersArray.data + __pyx_t_67 * __pyx_v_elementBarycentersArray.strides[0]) ) + __pyx_t_68 * __pyx_v_elementBarycentersArray.strides[1]) )) = ((((*((
double *) ( (__pyx_v_nA.data + __pyx_t_64 * __pyx_v_nA.strides[0]) ))) + (*((
double *) ( (__pyx_v_nB.data + __pyx_t_65 * __pyx_v_nB.strides[0]) )))) + (*((
double *) ( (__pyx_v_nC.data + __pyx_t_66 * __pyx_v_nC.strides[0]) )))) / 3.);
13719 __PYX_XDEC_MEMVIEW(&__pyx_t_3, 1);
13720 __PYX_XDEC_MEMVIEW(&__pyx_t_48, 1);
13721 __Pyx_WriteUnraisable(
"mprans.MeshSmoothing.cySmoothNodesCentroid", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
13723 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArray0, 1);
13724 __PYX_XDEC_MEMVIEW(&__pyx_v_nA, 1);
13725 __PYX_XDEC_MEMVIEW(&__pyx_v_nB, 1);
13726 __PYX_XDEC_MEMVIEW(&__pyx_v_nC, 1);
13727 __Pyx_RefNannyFinishContext();
13738 static void __pyx_f_6mprans_13MeshSmoothing_cyUpdateDilationElements(__Pyx_memviewslice __pyx_v_elementDilationArray_, __Pyx_memviewslice __pyx_v_elementVolumeArray, __Pyx_memviewslice __pyx_v_elementVolumeTargetArray,
int __pyx_v_nElements) {
13739 double __pyx_v_dilation;
13741 __Pyx_RefNannyDeclarations
13745 Py_ssize_t __pyx_t_4;
13746 Py_ssize_t __pyx_t_5;
13748 Py_ssize_t __pyx_t_7;
13749 __Pyx_RefNannySetupContext(
"cyUpdateDilationElements", 0);
13758 __pyx_t_1 = __pyx_v_nElements;
13759 __pyx_t_2 = __pyx_t_1;
13760 for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
13761 __pyx_v_eN = __pyx_t_3;
13770 __pyx_t_4 = __pyx_v_eN;
13771 if (__pyx_t_4 < 0) __pyx_t_4 += __pyx_v_elementVolumeArray.shape[0];
13772 __pyx_t_5 = __pyx_v_eN;
13773 if (__pyx_t_5 < 0) __pyx_t_5 += __pyx_v_elementVolumeTargetArray.shape[0];
13774 __pyx_v_dilation = ((*((
double *) ( (__pyx_v_elementVolumeArray.data + __pyx_t_4 * __pyx_v_elementVolumeArray.strides[0]) ))) / (*((
double *) ( (__pyx_v_elementVolumeTargetArray.data + __pyx_t_5 * __pyx_v_elementVolumeTargetArray.strides[0]) ))));
13783 __pyx_t_6 = ((__pyx_v_dilation < 1.) != 0);
13793 __pyx_v_dilation = (1.0 / __pyx_v_dilation);
13811 __pyx_t_7 = __pyx_v_eN;
13812 if (__pyx_t_7 < 0) __pyx_t_7 += __pyx_v_elementDilationArray_.shape[0];
13813 *((
double *) ( (__pyx_v_elementDilationArray_.data + __pyx_t_7 * __pyx_v_elementDilationArray_.strides[0]) )) = __pyx_v_dilation;
13825 __Pyx_RefNannyFinishContext();
13836 static void __pyx_f_6mprans_13MeshSmoothing_cyUpdateDistortionElements(__Pyx_memviewslice __pyx_v_elementDistortionArray_, __Pyx_memviewslice __pyx_v_J_array, __Pyx_memviewslice __pyx_v_detJ_array,
int __pyx_v_nd,
int __pyx_v_nElements) {
13837 __Pyx_memviewslice __pyx_v_J = { 0, 0, { 0 }, { 0 }, { 0 } };
13838 __Pyx_memviewslice __pyx_v_JT = { 0, 0, { 0 }, { 0 }, { 0 } };
13839 double __pyx_v_detJ;
13840 double __pyx_v_trJTJ;
13841 __Pyx_memviewslice __pyx_v_JTJ = { 0, 0, { 0 }, { 0 }, { 0 } };
13844 __Pyx_RefNannyDeclarations
13845 PyObject *__pyx_t_1 = NULL;
13846 Py_ssize_t __pyx_t_2;
13847 Py_ssize_t __pyx_t_3;
13849 Py_ssize_t __pyx_t_5;
13850 Py_ssize_t __pyx_t_6;
13851 __Pyx_memviewslice __pyx_t_7 = { 0, 0, { 0 }, { 0 }, { 0 } };
13852 PyObject *__pyx_t_8 = NULL;
13853 PyObject *__pyx_t_9 = NULL;
13854 PyObject *__pyx_t_10 = NULL;
13855 PyObject *__pyx_t_11 = NULL;
13857 PyObject *__pyx_t_13 = NULL;
13859 Py_ssize_t __pyx_t_15;
13860 Py_ssize_t __pyx_t_16;
13861 Py_ssize_t __pyx_t_17;
13862 Py_ssize_t __pyx_t_18;
13863 __Pyx_RefNannySetupContext(
"cyUpdateDistortionElements", 0);
13872 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_nElements);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 956, __pyx_L1_error)
13873 __Pyx_GOTREF(__pyx_t_1);
13874 __pyx_t_2 = PyObject_Length(__pyx_t_1);
if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 956, __pyx_L1_error)
13875 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13876 __pyx_t_3 = __pyx_t_2;
13877 for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
13878 __pyx_v_eN = __pyx_t_4;
13887 __pyx_t_5 = __pyx_v_eN;
13889 if (__pyx_t_5 < 0) __pyx_t_5 += __pyx_v_detJ_array.shape[0];
13890 if (__pyx_t_6 < 0) __pyx_t_6 += __pyx_v_detJ_array.shape[1];
13891 __pyx_v_detJ = (*((
double *) ( (( (__pyx_v_detJ_array.data + __pyx_t_5 * __pyx_v_detJ_array.strides[0]) ) + __pyx_t_6 * __pyx_v_detJ_array.strides[1]) )));
13900 __pyx_t_7.data = __pyx_v_J_array.data;
13901 __pyx_t_7.memview = __pyx_v_J_array.memview;
13902 __PYX_INC_MEMVIEW(&__pyx_t_7, 0);
13904 Py_ssize_t __pyx_tmp_idx = __pyx_v_eN;
13905 Py_ssize_t __pyx_tmp_shape = __pyx_v_J_array.shape[0];
13906 Py_ssize_t __pyx_tmp_stride = __pyx_v_J_array.strides[0];
13907 if (__pyx_tmp_idx < 0)
13908 __pyx_tmp_idx += __pyx_tmp_shape;
13909 if ((0)) __PYX_ERR(0, 958, __pyx_L1_error)
13910 __pyx_t_7.data += __pyx_tmp_idx * __pyx_tmp_stride;
13914 Py_ssize_t __pyx_tmp_idx = 0;
13915 Py_ssize_t __pyx_tmp_shape = __pyx_v_J_array.shape[1];
13916 Py_ssize_t __pyx_tmp_stride = __pyx_v_J_array.strides[1];
13917 if (__pyx_tmp_idx < 0)
13918 __pyx_tmp_idx += __pyx_tmp_shape;
13919 if ((0)) __PYX_ERR(0, 958, __pyx_L1_error)
13920 __pyx_t_7.data += __pyx_tmp_idx * __pyx_tmp_stride;
13923 __pyx_t_7.shape[0] = __pyx_v_J_array.shape[2];
13924 __pyx_t_7.strides[0] = __pyx_v_J_array.strides[2];
13925 __pyx_t_7.suboffsets[0] = -1;
13927 __pyx_t_7.shape[1] = __pyx_v_J_array.shape[3];
13928 __pyx_t_7.strides[1] = __pyx_v_J_array.strides[3];
13929 __pyx_t_7.suboffsets[1] = -1;
13931 __PYX_XDEC_MEMVIEW(&__pyx_v_J, 1);
13932 __pyx_v_J = __pyx_t_7;
13933 __pyx_t_7.memview = NULL;
13934 __pyx_t_7.data = NULL;
13943 __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np);
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 959, __pyx_L1_error)
13944 __Pyx_GOTREF(__pyx_t_8);
13945 __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_transpose);
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 959, __pyx_L1_error)
13946 __Pyx_GOTREF(__pyx_t_9);
13947 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
13948 __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_J, 2, (PyObject *(*)(
char *)) __pyx_memview_get_double, (
int (*)(
char *, PyObject *)) __pyx_memview_set_double, 0);;
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 959, __pyx_L1_error)
13949 __Pyx_GOTREF(__pyx_t_8);
13951 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
13952 __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
13953 if (likely(__pyx_t_10)) {
13954 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_9);
13955 __Pyx_INCREF(__pyx_t_10);
13956 __Pyx_INCREF(
function);
13957 __Pyx_DECREF_SET(__pyx_t_9,
function);
13960 __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8);
13961 __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
13962 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
13963 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 959, __pyx_L1_error)
13964 __Pyx_GOTREF(__pyx_t_1);
13965 __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
13966 __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 959, __pyx_L1_error)
13967 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13968 __PYX_XDEC_MEMVIEW(&__pyx_v_JT, 1);
13969 __pyx_v_JT = __pyx_t_7;
13970 __pyx_t_7.memview = NULL;
13971 __pyx_t_7.data = NULL;
13980 __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np);
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 960, __pyx_L1_error)
13981 __Pyx_GOTREF(__pyx_t_9);
13982 __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros_like);
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 960, __pyx_L1_error)
13983 __Pyx_GOTREF(__pyx_t_8);
13984 __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
13985 __pyx_t_9 = __pyx_memoryview_fromslice(__pyx_v_J, 2, (PyObject *(*)(
char *)) __pyx_memview_get_double, (
int (*)(
char *, PyObject *)) __pyx_memview_set_double, 0);;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 960, __pyx_L1_error)
13986 __Pyx_GOTREF(__pyx_t_9);
13988 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
13989 __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
13990 if (likely(__pyx_t_10)) {
13991 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_8);
13992 __Pyx_INCREF(__pyx_t_10);
13993 __Pyx_INCREF(
function);
13994 __Pyx_DECREF_SET(__pyx_t_8,
function);
13997 __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9);
13998 __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
13999 __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
14000 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 960, __pyx_L1_error)
14001 __Pyx_GOTREF(__pyx_t_1);
14002 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
14003 __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 960, __pyx_L1_error)
14004 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14005 __PYX_XDEC_MEMVIEW(&__pyx_v_JTJ, 1);
14006 __pyx_v_JTJ = __pyx_t_7;
14007 __pyx_t_7.memview = NULL;
14008 __pyx_t_7.data = NULL;
14017 __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np);
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 961, __pyx_L1_error)
14018 __Pyx_GOTREF(__pyx_t_8);
14019 __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_dot);
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 961, __pyx_L1_error)
14020 __Pyx_GOTREF(__pyx_t_9);
14021 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
14022 __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_J, 2, (PyObject *(*)(
char *)) __pyx_memview_get_double, (
int (*)(
char *, PyObject *)) __pyx_memview_set_double, 0);;
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 961, __pyx_L1_error)
14023 __Pyx_GOTREF(__pyx_t_8);
14024 __pyx_t_10 = __pyx_memoryview_fromslice(__pyx_v_JT, 2, (PyObject *(*)(
char *)) __pyx_memview_get_double, (
int (*)(
char *, PyObject *)) __pyx_memview_set_double, 0);;
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 961, __pyx_L1_error)
14025 __Pyx_GOTREF(__pyx_t_10);
14028 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
14029 __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_9);
14030 if (likely(__pyx_t_11)) {
14031 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_9);
14032 __Pyx_INCREF(__pyx_t_11);
14033 __Pyx_INCREF(
function);
14034 __Pyx_DECREF_SET(__pyx_t_9,
function);
14038 #if CYTHON_FAST_PYCALL 14039 if (PyFunction_Check(__pyx_t_9)) {
14040 PyObject *__pyx_temp[3] = {__pyx_t_11, __pyx_t_8, __pyx_t_10};
14041 __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
14042 __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
14043 __Pyx_GOTREF(__pyx_t_1);
14044 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
14045 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
14048 #if CYTHON_FAST_PYCCALL 14049 if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
14050 PyObject *__pyx_temp[3] = {__pyx_t_11, __pyx_t_8, __pyx_t_10};
14051 __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
14052 __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
14053 __Pyx_GOTREF(__pyx_t_1);
14054 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
14055 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
14059 __pyx_t_13 = PyTuple_New(2+__pyx_t_12);
if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 961, __pyx_L1_error)
14060 __Pyx_GOTREF(__pyx_t_13);
14062 __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_11); __pyx_t_11 = NULL;
14064 __Pyx_GIVEREF(__pyx_t_8);
14065 PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_12, __pyx_t_8);
14066 __Pyx_GIVEREF(__pyx_t_10);
14067 PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, __pyx_t_10);
14070 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_13, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
14071 __Pyx_GOTREF(__pyx_t_1);
14072 __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
14074 __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
14075 __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 961, __pyx_L1_error)
14076 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14077 __PYX_XDEC_MEMVIEW(&__pyx_v_JTJ, 1);
14078 __pyx_v_JTJ = __pyx_t_7;
14079 __pyx_t_7.memview = NULL;
14080 __pyx_t_7.data = NULL;
14089 __pyx_v_trJTJ = 0.;
14098 __pyx_t_14 = __Pyx_MemoryView_Len(__pyx_v_J);
14099 __pyx_t_15 = __pyx_t_14;
14100 for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_15; __pyx_t_12+=1) {
14101 __pyx_v_iJ = __pyx_t_12;
14110 __pyx_t_16 = __pyx_v_iJ;
14111 __pyx_t_17 = __pyx_v_iJ;
14112 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_JTJ.shape[0];
14113 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_JTJ.shape[1];
14114 __pyx_v_trJTJ = (__pyx_v_trJTJ + (*((
double *) ( (( (__pyx_v_JTJ.data + __pyx_t_16 * __pyx_v_JTJ.strides[0]) ) + __pyx_t_17 * __pyx_v_JTJ.strides[1]) ))));
14124 __pyx_t_18 = __pyx_v_eN;
14125 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_elementDistortionArray_.shape[0];
14126 *((
double *) ( (__pyx_v_elementDistortionArray_.data + __pyx_t_18 * __pyx_v_elementDistortionArray_.strides[0]) )) = (pow(((1. / __pyx_v_nd) * __pyx_v_trJTJ), (__pyx_v_nd / 2.)) / __pyx_v_detJ);
14140 __Pyx_XDECREF(__pyx_t_1);
14141 __PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
14142 __Pyx_XDECREF(__pyx_t_8);
14143 __Pyx_XDECREF(__pyx_t_9);
14144 __Pyx_XDECREF(__pyx_t_10);
14145 __Pyx_XDECREF(__pyx_t_11);
14146 __Pyx_XDECREF(__pyx_t_13);
14147 __Pyx_WriteUnraisable(
"mprans.MeshSmoothing.cyUpdateDistortionElements", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
14149 __PYX_XDEC_MEMVIEW(&__pyx_v_J, 1);
14150 __PYX_XDEC_MEMVIEW(&__pyx_v_JT, 1);
14151 __PYX_XDEC_MEMVIEW(&__pyx_v_JTJ, 1);
14152 __Pyx_RefNannyFinishContext();
14163 static void __pyx_f_6mprans_13MeshSmoothing_cyUpdateInverseMeanRatioTriangleNodes(__Pyx_memviewslice __pyx_v_IMRNodesArray_, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementNodesArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_nodeElementsArray,
int __pyx_v_nElements,
int __pyx_v_nNodes,
struct __pyx_opt_args_6mprans_13MeshSmoothing_cyUpdateInverseMeanRatioTriangleNodes *__pyx_optional_args) {
14172 bool __pyx_v_el_average = ((bool)0);
14173 __Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
14174 __Pyx_memviewslice __pyx_v_A = { 0, 0, { 0 }, { 0 }, { 0 } };
14175 __Pyx_memviewslice __pyx_v_AW = { 0, 0, { 0 }, { 0 }, { 0 } };
14176 __Pyx_memviewslice __pyx_v_nElementsArray = { 0, 0, { 0 }, { 0 }, { 0 } };
14177 __Pyx_memviewslice __pyx_v_IMR_elements = { 0, 0, { 0 }, { 0 }, { 0 } };
14179 __Pyx_memviewslice __pyx_v_vec_a = { 0, 0, { 0 }, { 0 }, { 0 } };
14180 __Pyx_memviewslice __pyx_v_vec_b = { 0, 0, { 0 }, { 0 }, { 0 } };
14181 __Pyx_memviewslice __pyx_v_vec_c = { 0, 0, { 0 }, { 0 }, { 0 } };
14182 double __pyx_v_IMR;
14187 int __pyx_v_eOffset;
14188 __Pyx_RefNannyDeclarations
14189 PyObject *__pyx_t_1 = NULL;
14190 PyObject *__pyx_t_2 = NULL;
14191 PyObject *__pyx_t_3 = NULL;
14192 PyObject *__pyx_t_4 = NULL;
14193 PyObject *__pyx_t_5 = NULL;
14194 __Pyx_memviewslice __pyx_t_6 = { 0, 0, { 0 }, { 0 }, { 0 } };
14195 __Pyx_memviewslice __pyx_t_7 = { 0, 0, { 0 }, { 0 }, { 0 } };
14197 __Pyx_memviewslice __pyx_t_9 = { 0, 0, { 0 }, { 0 }, { 0 } };
14204 Py_ssize_t __pyx_t_16;
14205 Py_ssize_t __pyx_t_17;
14206 Py_ssize_t __pyx_t_18;
14207 Py_ssize_t __pyx_t_19;
14208 Py_ssize_t __pyx_t_20;
14209 Py_ssize_t __pyx_t_21;
14210 Py_ssize_t __pyx_t_22;
14211 Py_ssize_t __pyx_t_23;
14212 Py_ssize_t __pyx_t_24;
14213 Py_ssize_t __pyx_t_25;
14214 Py_ssize_t __pyx_t_26;
14215 Py_ssize_t __pyx_t_27;
14216 Py_ssize_t __pyx_t_28;
14217 Py_ssize_t __pyx_t_29;
14218 Py_ssize_t __pyx_t_30;
14219 Py_ssize_t __pyx_t_31;
14220 Py_ssize_t __pyx_t_32;
14221 Py_ssize_t __pyx_t_33;
14222 Py_ssize_t __pyx_t_34;
14223 Py_ssize_t __pyx_t_35;
14224 Py_ssize_t __pyx_t_36;
14225 Py_ssize_t __pyx_t_37;
14226 Py_ssize_t __pyx_t_38;
14227 Py_ssize_t __pyx_t_39;
14228 PyObject *__pyx_t_40 = NULL;
14229 PyObject *__pyx_t_41 = NULL;
14231 Py_ssize_t __pyx_t_43;
14232 Py_ssize_t __pyx_t_44;
14233 Py_ssize_t __pyx_t_45;
14234 Py_ssize_t __pyx_t_46;
14235 Py_ssize_t __pyx_t_47;
14236 Py_ssize_t __pyx_t_48;
14237 Py_ssize_t __pyx_t_49;
14238 Py_ssize_t __pyx_t_50;
14239 Py_ssize_t __pyx_t_51;
14240 Py_ssize_t __pyx_t_52;
14241 Py_ssize_t __pyx_t_53;
14242 Py_ssize_t __pyx_t_54;
14243 Py_ssize_t __pyx_t_55;
14244 Py_ssize_t __pyx_t_56;
14245 Py_ssize_t __pyx_t_57;
14246 Py_ssize_t __pyx_t_58;
14247 Py_ssize_t __pyx_t_59;
14248 Py_ssize_t __pyx_t_60;
14249 Py_ssize_t __pyx_t_61;
14250 Py_ssize_t __pyx_t_62;
14251 Py_ssize_t __pyx_t_63;
14252 Py_ssize_t __pyx_t_64;
14253 Py_ssize_t __pyx_t_65;
14254 Py_ssize_t __pyx_t_66;
14255 Py_ssize_t __pyx_t_67;
14256 Py_ssize_t __pyx_t_68;
14257 Py_ssize_t __pyx_t_69;
14258 Py_ssize_t __pyx_t_70;
14259 Py_ssize_t __pyx_t_71;
14260 Py_ssize_t __pyx_t_72;
14261 Py_ssize_t __pyx_t_73;
14262 Py_ssize_t __pyx_t_74;
14263 __Pyx_RefNannySetupContext(
"cyUpdateInverseMeanRatioTriangleNodes", 0);
14264 if (__pyx_optional_args) {
14265 if (__pyx_optional_args->__pyx_n > 0) {
14266 __pyx_v_el_average = __pyx_optional_args->el_average;
14277 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
14278 __Pyx_GOTREF(__pyx_t_2);
14279 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 975, __pyx_L1_error)
14280 __Pyx_GOTREF(__pyx_t_3);
14281 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
14282 __pyx_t_2 = PyList_New(2);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
14283 __Pyx_GOTREF(__pyx_t_2);
14284 __Pyx_INCREF(__pyx_float_1_);
14285 __Pyx_GIVEREF(__pyx_float_1_);
14286 PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_1_);
14287 __Pyx_INCREF(__pyx_float_0_5);
14288 __Pyx_GIVEREF(__pyx_float_0_5);
14289 PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_0_5);
14298 __pyx_t_4 = PyFloat_FromDouble((sqrt(3.0) / 2.));
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 976, __pyx_L1_error)
14299 __Pyx_GOTREF(__pyx_t_4);
14300 __pyx_t_5 = PyList_New(2);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 976, __pyx_L1_error)
14301 __Pyx_GOTREF(__pyx_t_5);
14302 __Pyx_INCREF(__pyx_float_0_);
14303 __Pyx_GIVEREF(__pyx_float_0_);
14304 PyList_SET_ITEM(__pyx_t_5, 0, __pyx_float_0_);
14305 __Pyx_GIVEREF(__pyx_t_4);
14306 PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
14316 __pyx_t_4 = PyList_New(2);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 975, __pyx_L1_error)
14317 __Pyx_GOTREF(__pyx_t_4);
14318 __Pyx_GIVEREF(__pyx_t_2);
14319 PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
14320 __Pyx_GIVEREF(__pyx_t_5);
14321 PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);
14325 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
14326 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
14327 if (likely(__pyx_t_5)) {
14328 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_3);
14329 __Pyx_INCREF(__pyx_t_5);
14330 __Pyx_INCREF(
function);
14331 __Pyx_DECREF_SET(__pyx_t_3,
function);
14334 __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
14335 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
14336 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14337 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
14338 __Pyx_GOTREF(__pyx_t_1);
14339 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14340 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 975, __pyx_L1_error)
14341 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14342 __pyx_v_W = __pyx_t_6;
14343 __pyx_t_6.memview = NULL;
14344 __pyx_t_6.data = NULL;
14353 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 977, __pyx_L1_error)
14354 __Pyx_GOTREF(__pyx_t_3);
14355 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 977, __pyx_L1_error)
14356 __Pyx_GOTREF(__pyx_t_4);
14357 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14359 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
14360 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
14361 if (likely(__pyx_t_3)) {
14362 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_4);
14363 __Pyx_INCREF(__pyx_t_3);
14364 __Pyx_INCREF(
function);
14365 __Pyx_DECREF_SET(__pyx_t_4,
function);
14368 __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_tuple__6) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_tuple__6);
14369 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
14370 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 977, __pyx_L1_error)
14371 __Pyx_GOTREF(__pyx_t_1);
14372 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14373 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 977, __pyx_L1_error)
14374 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14375 __pyx_v_A = __pyx_t_6;
14376 __pyx_t_6.memview = NULL;
14377 __pyx_t_6.data = NULL;
14386 __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 978, __pyx_L1_error)
14387 __Pyx_GOTREF(__pyx_t_4);
14388 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 978, __pyx_L1_error)
14389 __Pyx_GOTREF(__pyx_t_3);
14390 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14392 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
14393 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
14394 if (likely(__pyx_t_4)) {
14395 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_3);
14396 __Pyx_INCREF(__pyx_t_4);
14397 __Pyx_INCREF(
function);
14398 __Pyx_DECREF_SET(__pyx_t_3,
function);
14401 __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_tuple__6) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_tuple__6);
14402 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
14403 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 978, __pyx_L1_error)
14404 __Pyx_GOTREF(__pyx_t_1);
14405 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14406 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 978, __pyx_L1_error)
14407 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14408 __pyx_v_AW = __pyx_t_6;
14409 __pyx_t_6.memview = NULL;
14410 __pyx_t_6.data = NULL;
14419 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 979, __pyx_L1_error)
14420 __Pyx_GOTREF(__pyx_t_3);
14421 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 979, __pyx_L1_error)
14422 __Pyx_GOTREF(__pyx_t_4);
14423 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14424 __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nElements);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 979, __pyx_L1_error)
14425 __Pyx_GOTREF(__pyx_t_3);
14427 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
14428 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
14429 if (likely(__pyx_t_5)) {
14430 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_4);
14431 __Pyx_INCREF(__pyx_t_5);
14432 __Pyx_INCREF(
function);
14433 __Pyx_DECREF_SET(__pyx_t_4,
function);
14436 __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3);
14437 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
14438 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14439 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 979, __pyx_L1_error)
14440 __Pyx_GOTREF(__pyx_t_1);
14441 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14442 __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 979, __pyx_L1_error)
14443 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14444 __pyx_v_nElementsArray = __pyx_t_7;
14445 __pyx_t_7.memview = NULL;
14446 __pyx_t_7.data = NULL;
14455 __pyx_t_8 = (__pyx_v_el_average != 0);
14465 __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 982, __pyx_L1_error)
14466 __Pyx_GOTREF(__pyx_t_4);
14467 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 982, __pyx_L1_error)
14468 __Pyx_GOTREF(__pyx_t_3);
14469 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14470 __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_nNodes);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 982, __pyx_L1_error)
14471 __Pyx_GOTREF(__pyx_t_4);
14473 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
14474 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
14475 if (likely(__pyx_t_5)) {
14476 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_3);
14477 __Pyx_INCREF(__pyx_t_5);
14478 __Pyx_INCREF(
function);
14479 __Pyx_DECREF_SET(__pyx_t_3,
function);
14482 __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
14483 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
14484 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14485 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 982, __pyx_L1_error)
14486 __Pyx_GOTREF(__pyx_t_1);
14487 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14488 __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 982, __pyx_L1_error)
14489 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14490 __pyx_v_IMR_elements = __pyx_t_9;
14491 __pyx_t_9.memview = NULL;
14492 __pyx_t_9.data = NULL;
14510 __pyx_v_nNel = (__pyx_v_elementNodesArray.shape[1]);
14528 __pyx_t_10 = __pyx_v_nElements;
14529 __pyx_t_11 = __pyx_t_10;
14530 for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
14531 __pyx_v_eN = __pyx_t_12;
14540 __pyx_t_13 = __pyx_v_nNel;
14541 __pyx_t_14 = __pyx_t_13;
14542 for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
14543 __pyx_v_iN = __pyx_t_15;
14552 __pyx_t_16 = __pyx_v_eN;
14553 __pyx_t_17 = __pyx_v_iN;
14554 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_elementNodesArray.shape[0];
14555 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_elementNodesArray.shape[1];
14556 __pyx_v_node = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_16 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_17 * __pyx_v_elementNodesArray.strides[1]) )));
14565 __pyx_t_18 = __pyx_v_eN;
14566 __pyx_t_19 = __pyx_v_iN;
14567 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_elementNodesArray.shape[0];
14568 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_elementNodesArray.shape[1];
14569 __pyx_t_9.data = __pyx_v_nodeArray.data;
14570 __pyx_t_9.memview = __pyx_v_nodeArray.memview;
14571 __PYX_INC_MEMVIEW(&__pyx_t_9, 0);
14573 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_18 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_19 * __pyx_v_elementNodesArray.strides[1]) )));
14574 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
14575 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
14576 if (__pyx_tmp_idx < 0)
14577 __pyx_tmp_idx += __pyx_tmp_shape;
14578 if ((0)) __PYX_ERR(0, 996, __pyx_L1_error)
14579 __pyx_t_9.data += __pyx_tmp_idx * __pyx_tmp_stride;
14582 __pyx_t_9.shape[0] = __pyx_v_nodeArray.shape[1];
14583 __pyx_t_9.strides[0] = __pyx_v_nodeArray.strides[1];
14584 __pyx_t_9.suboffsets[0] = -1;
14586 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_a, 1);
14587 __pyx_v_vec_a = __pyx_t_9;
14588 __pyx_t_9.memview = NULL;
14589 __pyx_t_9.data = NULL;
14598 __pyx_t_20 = __pyx_v_eN;
14599 __pyx_t_21 = (__pyx_v_iN - 1);
14600 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_elementNodesArray.shape[0];
14601 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_elementNodesArray.shape[1];
14602 __pyx_t_9.data = __pyx_v_nodeArray.data;
14603 __pyx_t_9.memview = __pyx_v_nodeArray.memview;
14604 __PYX_INC_MEMVIEW(&__pyx_t_9, 0);
14606 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_20 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_21 * __pyx_v_elementNodesArray.strides[1]) )));
14607 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
14608 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
14609 if (__pyx_tmp_idx < 0)
14610 __pyx_tmp_idx += __pyx_tmp_shape;
14611 if ((0)) __PYX_ERR(0, 997, __pyx_L1_error)
14612 __pyx_t_9.data += __pyx_tmp_idx * __pyx_tmp_stride;
14615 __pyx_t_9.shape[0] = __pyx_v_nodeArray.shape[1];
14616 __pyx_t_9.strides[0] = __pyx_v_nodeArray.strides[1];
14617 __pyx_t_9.suboffsets[0] = -1;
14619 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_b, 1);
14620 __pyx_v_vec_b = __pyx_t_9;
14621 __pyx_t_9.memview = NULL;
14622 __pyx_t_9.data = NULL;
14631 __pyx_t_22 = __pyx_v_eN;
14632 __pyx_t_23 = (__pyx_v_iN - 2);
14633 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_elementNodesArray.shape[0];
14634 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_elementNodesArray.shape[1];
14635 __pyx_t_9.data = __pyx_v_nodeArray.data;
14636 __pyx_t_9.memview = __pyx_v_nodeArray.memview;
14637 __PYX_INC_MEMVIEW(&__pyx_t_9, 0);
14639 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_22 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_23 * __pyx_v_elementNodesArray.strides[1]) )));
14640 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
14641 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
14642 if (__pyx_tmp_idx < 0)
14643 __pyx_tmp_idx += __pyx_tmp_shape;
14644 if ((0)) __PYX_ERR(0, 998, __pyx_L1_error)
14645 __pyx_t_9.data += __pyx_tmp_idx * __pyx_tmp_stride;
14648 __pyx_t_9.shape[0] = __pyx_v_nodeArray.shape[1];
14649 __pyx_t_9.strides[0] = __pyx_v_nodeArray.strides[1];
14650 __pyx_t_9.suboffsets[0] = -1;
14652 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_c, 1);
14653 __pyx_v_vec_c = __pyx_t_9;
14654 __pyx_t_9.memview = NULL;
14655 __pyx_t_9.data = NULL;
14665 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_vec_b.shape[0];
14667 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_vec_a.shape[0];
14670 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_A.shape[0];
14671 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_A.shape[1];
14672 *((
double *) ( (( (__pyx_v_A.data + __pyx_t_26 * __pyx_v_A.strides[0]) ) + __pyx_t_27 * __pyx_v_A.strides[1]) )) = ((*((
double *) ( (__pyx_v_vec_b.data + __pyx_t_24 * __pyx_v_vec_b.strides[0]) ))) - (*((
double *) ( (__pyx_v_vec_a.data + __pyx_t_25 * __pyx_v_vec_a.strides[0]) ))));
14682 if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_v_vec_b.shape[0];
14684 if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_v_vec_a.shape[0];
14687 if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_v_A.shape[0];
14688 if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_v_A.shape[1];
14689 *((
double *) ( (( (__pyx_v_A.data + __pyx_t_30 * __pyx_v_A.strides[0]) ) + __pyx_t_31 * __pyx_v_A.strides[1]) )) = ((*((
double *) ( (__pyx_v_vec_b.data + __pyx_t_28 * __pyx_v_vec_b.strides[0]) ))) - (*((
double *) ( (__pyx_v_vec_a.data + __pyx_t_29 * __pyx_v_vec_a.strides[0]) ))));
14699 if (__pyx_t_32 < 0) __pyx_t_32 += __pyx_v_vec_c.shape[0];
14701 if (__pyx_t_33 < 0) __pyx_t_33 += __pyx_v_vec_a.shape[0];
14704 if (__pyx_t_34 < 0) __pyx_t_34 += __pyx_v_A.shape[0];
14705 if (__pyx_t_35 < 0) __pyx_t_35 += __pyx_v_A.shape[1];
14706 *((
double *) ( (( (__pyx_v_A.data + __pyx_t_34 * __pyx_v_A.strides[0]) ) + __pyx_t_35 * __pyx_v_A.strides[1]) )) = ((*((
double *) ( (__pyx_v_vec_c.data + __pyx_t_32 * __pyx_v_vec_c.strides[0]) ))) - (*((
double *) ( (__pyx_v_vec_a.data + __pyx_t_33 * __pyx_v_vec_a.strides[0]) ))));
14716 if (__pyx_t_36 < 0) __pyx_t_36 += __pyx_v_vec_c.shape[0];
14718 if (__pyx_t_37 < 0) __pyx_t_37 += __pyx_v_vec_a.shape[0];
14721 if (__pyx_t_38 < 0) __pyx_t_38 += __pyx_v_A.shape[0];
14722 if (__pyx_t_39 < 0) __pyx_t_39 += __pyx_v_A.shape[1];
14723 *((
double *) ( (( (__pyx_v_A.data + __pyx_t_38 * __pyx_v_A.strides[0]) ) + __pyx_t_39 * __pyx_v_A.strides[1]) )) = ((*((
double *) ( (__pyx_v_vec_c.data + __pyx_t_36 * __pyx_v_vec_c.strides[0]) ))) - (*((
double *) ( (__pyx_v_vec_a.data + __pyx_t_37 * __pyx_v_vec_a.strides[0]) ))));
14732 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1003, __pyx_L1_error)
14733 __Pyx_GOTREF(__pyx_t_3);
14734 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dot);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1003, __pyx_L1_error)
14735 __Pyx_GOTREF(__pyx_t_4);
14736 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14737 __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_A, 2, (PyObject *(*)(
char *)) __pyx_memview_get_double, (
int (*)(
char *, PyObject *)) __pyx_memview_set_double, 0);;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1003, __pyx_L1_error)
14738 __Pyx_GOTREF(__pyx_t_3);
14739 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1003, __pyx_L1_error)
14740 __Pyx_GOTREF(__pyx_t_2);
14741 __pyx_t_40 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_linalg);
if (unlikely(!__pyx_t_40)) __PYX_ERR(0, 1003, __pyx_L1_error)
14742 __Pyx_GOTREF(__pyx_t_40);
14743 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
14744 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_40, __pyx_n_s_inv);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1003, __pyx_L1_error)
14745 __Pyx_GOTREF(__pyx_t_2);
14746 __Pyx_DECREF(__pyx_t_40); __pyx_t_40 = 0;
14747 __pyx_t_40 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(
char *)) __pyx_memview_get_double, (
int (*)(
char *, PyObject *)) __pyx_memview_set_double, 0);;
if (unlikely(!__pyx_t_40)) __PYX_ERR(0, 1003, __pyx_L1_error)
14748 __Pyx_GOTREF(__pyx_t_40);
14750 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
14751 __pyx_t_41 = PyMethod_GET_SELF(__pyx_t_2);
14752 if (likely(__pyx_t_41)) {
14753 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_2);
14754 __Pyx_INCREF(__pyx_t_41);
14755 __Pyx_INCREF(
function);
14756 __Pyx_DECREF_SET(__pyx_t_2,
function);
14759 __pyx_t_5 = (__pyx_t_41) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_41, __pyx_t_40) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_40);
14760 __Pyx_XDECREF(__pyx_t_41); __pyx_t_41 = 0;
14761 __Pyx_DECREF(__pyx_t_40); __pyx_t_40 = 0;
14762 if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1003, __pyx_L1_error)
14763 __Pyx_GOTREF(__pyx_t_5);
14764 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
14767 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
14768 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
14769 if (likely(__pyx_t_2)) {
14770 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_4);
14771 __Pyx_INCREF(__pyx_t_2);
14772 __Pyx_INCREF(
function);
14773 __Pyx_DECREF_SET(__pyx_t_4,
function);
14777 #if CYTHON_FAST_PYCALL 14778 if (PyFunction_Check(__pyx_t_4)) {
14779 PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_3, __pyx_t_5};
14780 __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_42, 2+__pyx_t_42);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1003, __pyx_L1_error)
14781 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
14782 __Pyx_GOTREF(__pyx_t_1);
14783 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14784 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
14787 #if CYTHON_FAST_PYCCALL 14788 if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
14789 PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_3, __pyx_t_5};
14790 __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_42, 2+__pyx_t_42);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1003, __pyx_L1_error)
14791 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
14792 __Pyx_GOTREF(__pyx_t_1);
14793 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14794 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
14798 __pyx_t_40 = PyTuple_New(2+__pyx_t_42);
if (unlikely(!__pyx_t_40)) __PYX_ERR(0, 1003, __pyx_L1_error)
14799 __Pyx_GOTREF(__pyx_t_40);
14801 __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_40, 0, __pyx_t_2); __pyx_t_2 = NULL;
14803 __Pyx_GIVEREF(__pyx_t_3);
14804 PyTuple_SET_ITEM(__pyx_t_40, 0+__pyx_t_42, __pyx_t_3);
14805 __Pyx_GIVEREF(__pyx_t_5);
14806 PyTuple_SET_ITEM(__pyx_t_40, 1+__pyx_t_42, __pyx_t_5);
14809 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_40, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1003, __pyx_L1_error)
14810 __Pyx_GOTREF(__pyx_t_1);
14811 __Pyx_DECREF(__pyx_t_40); __pyx_t_40 = 0;
14813 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14814 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1003, __pyx_L1_error)
14815 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14816 __PYX_XDEC_MEMVIEW(&__pyx_v_AW, 1);
14817 __pyx_v_AW = __pyx_t_6;
14818 __pyx_t_6.memview = NULL;
14819 __pyx_t_6.data = NULL;
14830 if (__pyx_t_43 < 0) __pyx_t_43 += __pyx_v_AW.shape[0];
14831 if (__pyx_t_44 < 0) __pyx_t_44 += __pyx_v_AW.shape[1];
14834 if (__pyx_t_45 < 0) __pyx_t_45 += __pyx_v_AW.shape[0];
14835 if (__pyx_t_46 < 0) __pyx_t_46 += __pyx_v_AW.shape[1];
14838 if (__pyx_t_47 < 0) __pyx_t_47 += __pyx_v_AW.shape[0];
14839 if (__pyx_t_48 < 0) __pyx_t_48 += __pyx_v_AW.shape[1];
14842 if (__pyx_t_49 < 0) __pyx_t_49 += __pyx_v_AW.shape[0];
14843 if (__pyx_t_50 < 0) __pyx_t_50 += __pyx_v_AW.shape[1];
14846 if (__pyx_t_51 < 0) __pyx_t_51 += __pyx_v_AW.shape[0];
14847 if (__pyx_t_52 < 0) __pyx_t_52 += __pyx_v_AW.shape[1];
14850 if (__pyx_t_53 < 0) __pyx_t_53 += __pyx_v_AW.shape[0];
14851 if (__pyx_t_54 < 0) __pyx_t_54 += __pyx_v_AW.shape[1];
14854 if (__pyx_t_55 < 0) __pyx_t_55 += __pyx_v_AW.shape[0];
14855 if (__pyx_t_56 < 0) __pyx_t_56 += __pyx_v_AW.shape[1];
14858 if (__pyx_t_57 < 0) __pyx_t_57 += __pyx_v_AW.shape[0];
14859 if (__pyx_t_58 < 0) __pyx_t_58 += __pyx_v_AW.shape[1];
14860 __pyx_v_IMR = ((((pow((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_43 * __pyx_v_AW.strides[0]) ) + __pyx_t_44 * __pyx_v_AW.strides[1]) ))), 2.0) + pow((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_45 * __pyx_v_AW.strides[0]) ) + __pyx_t_46 * __pyx_v_AW.strides[1]) ))), 2.0)) + pow((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_47 * __pyx_v_AW.strides[0]) ) + __pyx_t_48 * __pyx_v_AW.strides[1]) ))), 2.0)) + pow((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_49 * __pyx_v_AW.strides[0]) ) + __pyx_t_50 * __pyx_v_AW.strides[1]) ))), 2.0)) / (2.0 * fabs((((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_51 * __pyx_v_AW.strides[0]) ) + __pyx_t_52 * __pyx_v_AW.strides[1]) ))) * (*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_53 * __pyx_v_AW.strides[0]) ) + __pyx_t_54 * __pyx_v_AW.strides[1]) )))) - ((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_55 * __pyx_v_AW.strides[0]) ) + __pyx_t_56 * __pyx_v_AW.strides[1]) ))) * (*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_57 * __pyx_v_AW.strides[0]) ) + __pyx_t_58 * __pyx_v_AW.strides[1]) ))))))));
14869 __pyx_t_59 = __pyx_v_node;
14870 if (__pyx_t_59 < 0) __pyx_t_59 += __pyx_v_IMRNodesArray_.shape[0];
14871 *((
double *) ( (__pyx_v_IMRNodesArray_.data + __pyx_t_59 * __pyx_v_IMRNodesArray_.strides[0]) )) += __pyx_v_IMR;
14880 __pyx_t_60 = __pyx_v_node;
14881 if (__pyx_t_60 < 0) __pyx_t_60 += __pyx_v_nElementsArray.shape[0];
14882 *((
int *) ( (__pyx_v_nElementsArray.data + __pyx_t_60 * __pyx_v_nElementsArray.strides[0]) )) += 1;
14891 __pyx_t_8 = (__pyx_v_el_average != 0);
14901 __pyx_t_61 = __pyx_v_eN;
14902 if (__pyx_t_61 < 0) __pyx_t_61 += __pyx_v_IMR_elements.shape[0];
14903 *((
double *) ( (__pyx_v_IMR_elements.data + __pyx_t_61 * __pyx_v_IMR_elements.strides[0]) )) += __pyx_v_IMR;
14922 __pyx_t_8 = (__pyx_v_el_average != 0);
14932 __pyx_t_62 = __pyx_v_eN;
14933 if (__pyx_t_62 < 0) __pyx_t_62 += __pyx_v_IMR_elements.shape[0];
14934 __pyx_t_63 = __pyx_v_eN;
14935 if (__pyx_t_63 < 0) __pyx_t_63 += __pyx_v_IMR_elements.shape[0];
14936 *((
double *) ( (__pyx_v_IMR_elements.data + __pyx_t_63 * __pyx_v_IMR_elements.strides[0]) )) = ((*((
double *) ( (__pyx_v_IMR_elements.data + __pyx_t_62 * __pyx_v_IMR_elements.strides[0]) ))) / 3.);
14955 __pyx_t_10 = __pyx_v_nNodes;
14956 __pyx_t_11 = __pyx_t_10;
14957 for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
14958 __pyx_v_node = __pyx_t_12;
14967 __pyx_t_8 = ((!(__pyx_v_el_average != 0)) != 0);
14977 __pyx_t_64 = __pyx_v_node;
14978 if (__pyx_t_64 < 0) __pyx_t_64 += __pyx_v_IMRNodesArray_.shape[0];
14979 __pyx_t_65 = __pyx_v_node;
14980 if (__pyx_t_65 < 0) __pyx_t_65 += __pyx_v_nElementsArray.shape[0];
14981 __pyx_t_66 = __pyx_v_node;
14982 if (__pyx_t_66 < 0) __pyx_t_66 += __pyx_v_IMRNodesArray_.shape[0];
14983 *((
double *) ( (__pyx_v_IMRNodesArray_.data + __pyx_t_66 * __pyx_v_IMRNodesArray_.strides[0]) )) = ((*((
double *) ( (__pyx_v_IMRNodesArray_.data + __pyx_t_64 * __pyx_v_IMRNodesArray_.strides[0]) ))) / (*((
int *) ( (__pyx_v_nElementsArray.data + __pyx_t_65 * __pyx_v_nElementsArray.strides[0]) ))));
15012 __pyx_t_67 = __pyx_v_node;
15013 if (__pyx_t_67 < 0) __pyx_t_67 += __pyx_v_IMRNodesArray_.shape[0];
15014 *((
double *) ( (__pyx_v_IMRNodesArray_.data + __pyx_t_67 * __pyx_v_IMRNodesArray_.strides[0]) )) = 0.;
15023 __pyx_t_68 = (__pyx_v_node + 1);
15024 if (__pyx_t_68 < 0) __pyx_t_68 += __pyx_v_nodeElementOffsets.shape[0];
15025 __pyx_t_13 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_68 * __pyx_v_nodeElementOffsets.strides[0]) )));
15034 __pyx_t_69 = __pyx_v_node;
15035 if (__pyx_t_69 < 0) __pyx_t_69 += __pyx_v_nodeElementOffsets.shape[0];
15044 __pyx_t_14 = __pyx_t_13;
15045 for (__pyx_t_15 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_69 * __pyx_v_nodeElementOffsets.strides[0]) ))); __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
15054 __pyx_v_eOffset = __pyx_t_15;
15063 __pyx_t_70 = __pyx_v_eOffset;
15064 if (__pyx_t_70 < 0) __pyx_t_70 += __pyx_v_nodeElementsArray.shape[0];
15065 __pyx_v_eN = (*((
int *) ( (__pyx_v_nodeElementsArray.data + __pyx_t_70 * __pyx_v_nodeElementsArray.strides[0]) )));
15074 __pyx_v_nEl = (__pyx_v_nEl + 1);
15083 __pyx_t_71 = __pyx_v_eN;
15084 if (__pyx_t_71 < 0) __pyx_t_71 += __pyx_v_IMR_elements.shape[0];
15085 __pyx_t_72 = __pyx_v_node;
15086 if (__pyx_t_72 < 0) __pyx_t_72 += __pyx_v_IMRNodesArray_.shape[0];
15087 *((
double *) ( (__pyx_v_IMRNodesArray_.data + __pyx_t_72 * __pyx_v_IMRNodesArray_.strides[0]) )) += (*((
double *) ( (__pyx_v_IMR_elements.data + __pyx_t_71 * __pyx_v_IMR_elements.strides[0]) )));
15097 __pyx_t_73 = __pyx_v_node;
15098 if (__pyx_t_73 < 0) __pyx_t_73 += __pyx_v_IMRNodesArray_.shape[0];
15099 __pyx_t_74 = __pyx_v_node;
15100 if (__pyx_t_74 < 0) __pyx_t_74 += __pyx_v_IMRNodesArray_.shape[0];
15101 *((
double *) ( (__pyx_v_IMRNodesArray_.data + __pyx_t_74 * __pyx_v_IMRNodesArray_.strides[0]) )) = ((*((
double *) ( (__pyx_v_IMRNodesArray_.data + __pyx_t_73 * __pyx_v_IMRNodesArray_.strides[0]) ))) / __pyx_v_nEl);
15117 __Pyx_XDECREF(__pyx_t_1);
15118 __Pyx_XDECREF(__pyx_t_2);
15119 __Pyx_XDECREF(__pyx_t_3);
15120 __Pyx_XDECREF(__pyx_t_4);
15121 __Pyx_XDECREF(__pyx_t_5);
15122 __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
15123 __PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
15124 __PYX_XDEC_MEMVIEW(&__pyx_t_9, 1);
15125 __Pyx_XDECREF(__pyx_t_40);
15126 __Pyx_XDECREF(__pyx_t_41);
15127 __Pyx_WriteUnraisable(
"mprans.MeshSmoothing.cyUpdateInverseMeanRatioTriangleNodes", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
15129 __PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
15130 __PYX_XDEC_MEMVIEW(&__pyx_v_A, 1);
15131 __PYX_XDEC_MEMVIEW(&__pyx_v_AW, 1);
15132 __PYX_XDEC_MEMVIEW(&__pyx_v_nElementsArray, 1);
15133 __PYX_XDEC_MEMVIEW(&__pyx_v_IMR_elements, 1);
15134 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_a, 1);
15135 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_b, 1);
15136 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_c, 1);
15137 __Pyx_RefNannyFinishContext();
15148 static void __pyx_f_6mprans_13MeshSmoothing_cyUpdateInverseMeanRatioTriangleElements(__Pyx_memviewslice __pyx_v_IMRElementsArray_, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementNodesArray,
int __pyx_v_nElements) {
15149 __Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
15150 __Pyx_memviewslice __pyx_v_A = { 0, 0, { 0 }, { 0 }, { 0 } };
15151 __Pyx_memviewslice __pyx_v_AW = { 0, 0, { 0 }, { 0 }, { 0 } };
15152 __Pyx_memviewslice __pyx_v_vec_a = { 0, 0, { 0 }, { 0 }, { 0 } };
15153 __Pyx_memviewslice __pyx_v_vec_b = { 0, 0, { 0 }, { 0 }, { 0 } };
15154 __Pyx_memviewslice __pyx_v_vec_c = { 0, 0, { 0 }, { 0 }, { 0 } };
15155 double __pyx_v_IMR;
15156 CYTHON_UNUSED
int __pyx_v_nEl;
15159 CYTHON_UNUSED
int __pyx_v_node;
15160 __Pyx_RefNannyDeclarations
15161 PyObject *__pyx_t_1 = NULL;
15162 PyObject *__pyx_t_2 = NULL;
15163 PyObject *__pyx_t_3 = NULL;
15164 PyObject *__pyx_t_4 = NULL;
15165 PyObject *__pyx_t_5 = NULL;
15166 __Pyx_memviewslice __pyx_t_6 = { 0, 0, { 0 }, { 0 }, { 0 } };
15171 __Pyx_memviewslice __pyx_t_11 = { 0, 0, { 0 }, { 0 }, { 0 } };
15172 Py_ssize_t __pyx_t_12;
15173 PyObject *(*__pyx_t_13)(PyObject *);
15175 Py_ssize_t __pyx_t_15;
15176 Py_ssize_t __pyx_t_16;
15177 __Pyx_memviewslice __pyx_t_17 = { 0, 0, { 0 }, { 0 }, { 0 } };
15178 Py_ssize_t __pyx_t_18;
15179 Py_ssize_t __pyx_t_19;
15180 Py_ssize_t __pyx_t_20;
15181 Py_ssize_t __pyx_t_21;
15182 Py_ssize_t __pyx_t_22;
15183 Py_ssize_t __pyx_t_23;
15184 Py_ssize_t __pyx_t_24;
15185 Py_ssize_t __pyx_t_25;
15186 Py_ssize_t __pyx_t_26;
15187 Py_ssize_t __pyx_t_27;
15188 Py_ssize_t __pyx_t_28;
15189 Py_ssize_t __pyx_t_29;
15190 Py_ssize_t __pyx_t_30;
15191 Py_ssize_t __pyx_t_31;
15192 Py_ssize_t __pyx_t_32;
15193 Py_ssize_t __pyx_t_33;
15194 Py_ssize_t __pyx_t_34;
15195 Py_ssize_t __pyx_t_35;
15196 Py_ssize_t __pyx_t_36;
15197 Py_ssize_t __pyx_t_37;
15198 PyObject *__pyx_t_38 = NULL;
15199 PyObject *__pyx_t_39 = NULL;
15200 PyObject *__pyx_t_40 = NULL;
15201 Py_ssize_t __pyx_t_41;
15202 Py_ssize_t __pyx_t_42;
15203 Py_ssize_t __pyx_t_43;
15204 Py_ssize_t __pyx_t_44;
15205 Py_ssize_t __pyx_t_45;
15206 Py_ssize_t __pyx_t_46;
15207 Py_ssize_t __pyx_t_47;
15208 Py_ssize_t __pyx_t_48;
15209 Py_ssize_t __pyx_t_49;
15210 Py_ssize_t __pyx_t_50;
15211 Py_ssize_t __pyx_t_51;
15212 Py_ssize_t __pyx_t_52;
15213 Py_ssize_t __pyx_t_53;
15214 Py_ssize_t __pyx_t_54;
15215 Py_ssize_t __pyx_t_55;
15216 Py_ssize_t __pyx_t_56;
15217 Py_ssize_t __pyx_t_57;
15218 Py_ssize_t __pyx_t_58;
15219 Py_ssize_t __pyx_t_59;
15220 __Pyx_RefNannySetupContext(
"cyUpdateInverseMeanRatioTriangleElements", 0);
15229 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1028, __pyx_L1_error)
15230 __Pyx_GOTREF(__pyx_t_2);
15231 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1028, __pyx_L1_error)
15232 __Pyx_GOTREF(__pyx_t_3);
15233 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15234 __pyx_t_2 = PyList_New(2);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1028, __pyx_L1_error)
15235 __Pyx_GOTREF(__pyx_t_2);
15236 __Pyx_INCREF(__pyx_float_1_);
15237 __Pyx_GIVEREF(__pyx_float_1_);
15238 PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_1_);
15239 __Pyx_INCREF(__pyx_float_0_5);
15240 __Pyx_GIVEREF(__pyx_float_0_5);
15241 PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_0_5);
15250 __pyx_t_4 = PyFloat_FromDouble((sqrt(3.0) / 2.));
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1029, __pyx_L1_error)
15251 __Pyx_GOTREF(__pyx_t_4);
15252 __pyx_t_5 = PyList_New(2);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1029, __pyx_L1_error)
15253 __Pyx_GOTREF(__pyx_t_5);
15254 __Pyx_INCREF(__pyx_float_0_);
15255 __Pyx_GIVEREF(__pyx_float_0_);
15256 PyList_SET_ITEM(__pyx_t_5, 0, __pyx_float_0_);
15257 __Pyx_GIVEREF(__pyx_t_4);
15258 PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
15268 __pyx_t_4 = PyList_New(2);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1028, __pyx_L1_error)
15269 __Pyx_GOTREF(__pyx_t_4);
15270 __Pyx_GIVEREF(__pyx_t_2);
15271 PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
15272 __Pyx_GIVEREF(__pyx_t_5);
15273 PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);
15277 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
15278 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
15279 if (likely(__pyx_t_5)) {
15280 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_3);
15281 __Pyx_INCREF(__pyx_t_5);
15282 __Pyx_INCREF(
function);
15283 __Pyx_DECREF_SET(__pyx_t_3,
function);
15286 __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
15287 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
15288 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
15289 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1028, __pyx_L1_error)
15290 __Pyx_GOTREF(__pyx_t_1);
15291 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15292 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1028, __pyx_L1_error)
15293 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15294 __pyx_v_W = __pyx_t_6;
15295 __pyx_t_6.memview = NULL;
15296 __pyx_t_6.data = NULL;
15305 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1030, __pyx_L1_error)
15306 __Pyx_GOTREF(__pyx_t_3);
15307 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1030, __pyx_L1_error)
15308 __Pyx_GOTREF(__pyx_t_4);
15309 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15311 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
15312 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
15313 if (likely(__pyx_t_3)) {
15314 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_4);
15315 __Pyx_INCREF(__pyx_t_3);
15316 __Pyx_INCREF(
function);
15317 __Pyx_DECREF_SET(__pyx_t_4,
function);
15320 __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_tuple__6) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_tuple__6);
15321 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
15322 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1030, __pyx_L1_error)
15323 __Pyx_GOTREF(__pyx_t_1);
15324 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
15325 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1030, __pyx_L1_error)
15326 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15327 __pyx_v_A = __pyx_t_6;
15328 __pyx_t_6.memview = NULL;
15329 __pyx_t_6.data = NULL;
15338 __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1031, __pyx_L1_error)
15339 __Pyx_GOTREF(__pyx_t_4);
15340 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1031, __pyx_L1_error)
15341 __Pyx_GOTREF(__pyx_t_3);
15342 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
15344 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
15345 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
15346 if (likely(__pyx_t_4)) {
15347 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_3);
15348 __Pyx_INCREF(__pyx_t_4);
15349 __Pyx_INCREF(
function);
15350 __Pyx_DECREF_SET(__pyx_t_3,
function);
15353 __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_tuple__6) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_tuple__6);
15354 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
15355 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1031, __pyx_L1_error)
15356 __Pyx_GOTREF(__pyx_t_1);
15357 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15358 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1031, __pyx_L1_error)
15359 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15360 __pyx_v_AW = __pyx_t_6;
15361 __pyx_t_6.memview = NULL;
15362 __pyx_t_6.data = NULL;
15380 __pyx_t_7 = __pyx_v_nElements;
15381 __pyx_t_8 = __pyx_t_7;
15382 for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
15383 __pyx_v_eN = __pyx_t_9;
15393 __pyx_t_11.data = __pyx_v_elementNodesArray.data;
15394 __pyx_t_11.memview = __pyx_v_elementNodesArray.memview;
15395 __PYX_INC_MEMVIEW(&__pyx_t_11, 0);
15397 Py_ssize_t __pyx_tmp_idx = __pyx_v_eN;
15398 Py_ssize_t __pyx_tmp_shape = __pyx_v_elementNodesArray.shape[0];
15399 Py_ssize_t __pyx_tmp_stride = __pyx_v_elementNodesArray.strides[0];
15400 if (__pyx_tmp_idx < 0)
15401 __pyx_tmp_idx += __pyx_tmp_shape;
15402 if ((0)) __PYX_ERR(0, 1041, __pyx_L1_error)
15403 __pyx_t_11.data += __pyx_tmp_idx * __pyx_tmp_stride;
15406 __pyx_t_11.shape[0] = __pyx_v_elementNodesArray.shape[1];
15407 __pyx_t_11.strides[0] = __pyx_v_elementNodesArray.strides[1];
15408 __pyx_t_11.suboffsets[0] = -1;
15410 __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_t_11, 1, (PyObject *(*)(
char *)) __pyx_memview_get_int, (
int (*)(
char *, PyObject *)) __pyx_memview_set_int, 0);;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1041, __pyx_L1_error)
15411 __Pyx_GOTREF(__pyx_t_1);
15412 __PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
15413 __pyx_t_11.memview = NULL;
15414 __pyx_t_11.data = NULL;
15415 if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
15416 __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_12 = 0;
15419 __pyx_t_12 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1041, __pyx_L1_error)
15420 __Pyx_GOTREF(__pyx_t_3);
15421 __pyx_t_13 = Py_TYPE(__pyx_t_3)->tp_iternext;
if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1041, __pyx_L1_error)
15423 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15425 if (likely(!__pyx_t_13)) {
15426 if (likely(PyList_CheckExact(__pyx_t_3))) {
15427 if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_3))
break;
15428 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 15429 __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_1); __pyx_t_12++;
if (unlikely(0 < 0)) __PYX_ERR(0, 1041, __pyx_L1_error)
15431 __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1041, __pyx_L1_error)
15432 __Pyx_GOTREF(__pyx_t_1);
15435 if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_3))
break;
15436 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 15437 __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_1); __pyx_t_12++;
if (unlikely(0 < 0)) __PYX_ERR(0, 1041, __pyx_L1_error)
15439 __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1041, __pyx_L1_error)
15440 __Pyx_GOTREF(__pyx_t_1);
15444 __pyx_t_1 = __pyx_t_13(__pyx_t_3);
15445 if (unlikely(!__pyx_t_1)) {
15446 PyObject* exc_type = PyErr_Occurred();
15448 if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
15449 else __PYX_ERR(0, 1041, __pyx_L1_error)
15453 __Pyx_GOTREF(__pyx_t_1);
15455 __pyx_t_14 = __Pyx_PyInt_As_int(__pyx_t_1);
if (unlikely((__pyx_t_14 == (
int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1041, __pyx_L1_error)
15456 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15457 __pyx_v_node = __pyx_t_14;
15458 __pyx_v_iN = __pyx_t_10;
15459 __pyx_t_10 = (__pyx_t_10 + 1);
15468 __pyx_t_15 = __pyx_v_eN;
15469 __pyx_t_16 = __pyx_v_iN;
15470 if (__pyx_t_15 < 0) __pyx_t_15 += __pyx_v_elementNodesArray.shape[0];
15471 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_elementNodesArray.shape[1];
15472 __pyx_t_17.data = __pyx_v_nodeArray.data;
15473 __pyx_t_17.memview = __pyx_v_nodeArray.memview;
15474 __PYX_INC_MEMVIEW(&__pyx_t_17, 0);
15476 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_15 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_16 * __pyx_v_elementNodesArray.strides[1]) )));
15477 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
15478 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
15479 if (__pyx_tmp_idx < 0)
15480 __pyx_tmp_idx += __pyx_tmp_shape;
15481 if ((0)) __PYX_ERR(0, 1042, __pyx_L1_error)
15482 __pyx_t_17.data += __pyx_tmp_idx * __pyx_tmp_stride;
15485 __pyx_t_17.shape[0] = __pyx_v_nodeArray.shape[1];
15486 __pyx_t_17.strides[0] = __pyx_v_nodeArray.strides[1];
15487 __pyx_t_17.suboffsets[0] = -1;
15489 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_a, 1);
15490 __pyx_v_vec_a = __pyx_t_17;
15491 __pyx_t_17.memview = NULL;
15492 __pyx_t_17.data = NULL;
15501 __pyx_t_18 = __pyx_v_eN;
15502 __pyx_t_19 = (__pyx_v_iN - 1);
15503 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_elementNodesArray.shape[0];
15504 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_elementNodesArray.shape[1];
15505 __pyx_t_17.data = __pyx_v_nodeArray.data;
15506 __pyx_t_17.memview = __pyx_v_nodeArray.memview;
15507 __PYX_INC_MEMVIEW(&__pyx_t_17, 0);
15509 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_18 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_19 * __pyx_v_elementNodesArray.strides[1]) )));
15510 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
15511 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
15512 if (__pyx_tmp_idx < 0)
15513 __pyx_tmp_idx += __pyx_tmp_shape;
15514 if ((0)) __PYX_ERR(0, 1043, __pyx_L1_error)
15515 __pyx_t_17.data += __pyx_tmp_idx * __pyx_tmp_stride;
15518 __pyx_t_17.shape[0] = __pyx_v_nodeArray.shape[1];
15519 __pyx_t_17.strides[0] = __pyx_v_nodeArray.strides[1];
15520 __pyx_t_17.suboffsets[0] = -1;
15522 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_b, 1);
15523 __pyx_v_vec_b = __pyx_t_17;
15524 __pyx_t_17.memview = NULL;
15525 __pyx_t_17.data = NULL;
15534 __pyx_t_20 = __pyx_v_eN;
15535 __pyx_t_21 = (__pyx_v_iN - 2);
15536 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_elementNodesArray.shape[0];
15537 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_elementNodesArray.shape[1];
15538 __pyx_t_17.data = __pyx_v_nodeArray.data;
15539 __pyx_t_17.memview = __pyx_v_nodeArray.memview;
15540 __PYX_INC_MEMVIEW(&__pyx_t_17, 0);
15542 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_20 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_21 * __pyx_v_elementNodesArray.strides[1]) )));
15543 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
15544 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
15545 if (__pyx_tmp_idx < 0)
15546 __pyx_tmp_idx += __pyx_tmp_shape;
15547 if ((0)) __PYX_ERR(0, 1044, __pyx_L1_error)
15548 __pyx_t_17.data += __pyx_tmp_idx * __pyx_tmp_stride;
15551 __pyx_t_17.shape[0] = __pyx_v_nodeArray.shape[1];
15552 __pyx_t_17.strides[0] = __pyx_v_nodeArray.strides[1];
15553 __pyx_t_17.suboffsets[0] = -1;
15555 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_c, 1);
15556 __pyx_v_vec_c = __pyx_t_17;
15557 __pyx_t_17.memview = NULL;
15558 __pyx_t_17.data = NULL;
15568 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_vec_b.shape[0];
15570 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_vec_a.shape[0];
15573 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_A.shape[0];
15574 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_A.shape[1];
15575 *((
double *) ( (( (__pyx_v_A.data + __pyx_t_24 * __pyx_v_A.strides[0]) ) + __pyx_t_25 * __pyx_v_A.strides[1]) )) = ((*((
double *) ( (__pyx_v_vec_b.data + __pyx_t_22 * __pyx_v_vec_b.strides[0]) ))) - (*((
double *) ( (__pyx_v_vec_a.data + __pyx_t_23 * __pyx_v_vec_a.strides[0]) ))));
15585 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_vec_b.shape[0];
15587 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_vec_a.shape[0];
15590 if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_v_A.shape[0];
15591 if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_v_A.shape[1];
15592 *((
double *) ( (( (__pyx_v_A.data + __pyx_t_28 * __pyx_v_A.strides[0]) ) + __pyx_t_29 * __pyx_v_A.strides[1]) )) = ((*((
double *) ( (__pyx_v_vec_b.data + __pyx_t_26 * __pyx_v_vec_b.strides[0]) ))) - (*((
double *) ( (__pyx_v_vec_a.data + __pyx_t_27 * __pyx_v_vec_a.strides[0]) ))));
15602 if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_v_vec_c.shape[0];
15604 if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_v_vec_a.shape[0];
15607 if (__pyx_t_32 < 0) __pyx_t_32 += __pyx_v_A.shape[0];
15608 if (__pyx_t_33 < 0) __pyx_t_33 += __pyx_v_A.shape[1];
15609 *((
double *) ( (( (__pyx_v_A.data + __pyx_t_32 * __pyx_v_A.strides[0]) ) + __pyx_t_33 * __pyx_v_A.strides[1]) )) = ((*((
double *) ( (__pyx_v_vec_c.data + __pyx_t_30 * __pyx_v_vec_c.strides[0]) ))) - (*((
double *) ( (__pyx_v_vec_a.data + __pyx_t_31 * __pyx_v_vec_a.strides[0]) ))));
15619 if (__pyx_t_34 < 0) __pyx_t_34 += __pyx_v_vec_c.shape[0];
15621 if (__pyx_t_35 < 0) __pyx_t_35 += __pyx_v_vec_a.shape[0];
15624 if (__pyx_t_36 < 0) __pyx_t_36 += __pyx_v_A.shape[0];
15625 if (__pyx_t_37 < 0) __pyx_t_37 += __pyx_v_A.shape[1];
15626 *((
double *) ( (( (__pyx_v_A.data + __pyx_t_36 * __pyx_v_A.strides[0]) ) + __pyx_t_37 * __pyx_v_A.strides[1]) )) = ((*((
double *) ( (__pyx_v_vec_c.data + __pyx_t_34 * __pyx_v_vec_c.strides[0]) ))) - (*((
double *) ( (__pyx_v_vec_a.data + __pyx_t_35 * __pyx_v_vec_a.strides[0]) ))));
15635 __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1049, __pyx_L1_error)
15636 __Pyx_GOTREF(__pyx_t_4);
15637 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_dot);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1049, __pyx_L1_error)
15638 __Pyx_GOTREF(__pyx_t_5);
15639 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
15640 __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_A, 2, (PyObject *(*)(
char *)) __pyx_memview_get_double, (
int (*)(
char *, PyObject *)) __pyx_memview_set_double, 0);;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1049, __pyx_L1_error)
15641 __Pyx_GOTREF(__pyx_t_4);
15642 __Pyx_GetModuleGlobalName(__pyx_t_38, __pyx_n_s_np);
if (unlikely(!__pyx_t_38)) __PYX_ERR(0, 1049, __pyx_L1_error)
15643 __Pyx_GOTREF(__pyx_t_38);
15644 __pyx_t_39 = __Pyx_PyObject_GetAttrStr(__pyx_t_38, __pyx_n_s_linalg);
if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 1049, __pyx_L1_error)
15645 __Pyx_GOTREF(__pyx_t_39);
15646 __Pyx_DECREF(__pyx_t_38); __pyx_t_38 = 0;
15647 __pyx_t_38 = __Pyx_PyObject_GetAttrStr(__pyx_t_39, __pyx_n_s_inv);
if (unlikely(!__pyx_t_38)) __PYX_ERR(0, 1049, __pyx_L1_error)
15648 __Pyx_GOTREF(__pyx_t_38);
15649 __Pyx_DECREF(__pyx_t_39); __pyx_t_39 = 0;
15650 __pyx_t_39 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(
char *)) __pyx_memview_get_double, (
int (*)(
char *, PyObject *)) __pyx_memview_set_double, 0);;
if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 1049, __pyx_L1_error)
15651 __Pyx_GOTREF(__pyx_t_39);
15653 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_38))) {
15654 __pyx_t_40 = PyMethod_GET_SELF(__pyx_t_38);
15655 if (likely(__pyx_t_40)) {
15656 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_38);
15657 __Pyx_INCREF(__pyx_t_40);
15658 __Pyx_INCREF(
function);
15659 __Pyx_DECREF_SET(__pyx_t_38,
function);
15662 __pyx_t_2 = (__pyx_t_40) ? __Pyx_PyObject_Call2Args(__pyx_t_38, __pyx_t_40, __pyx_t_39) : __Pyx_PyObject_CallOneArg(__pyx_t_38, __pyx_t_39);
15663 __Pyx_XDECREF(__pyx_t_40); __pyx_t_40 = 0;
15664 __Pyx_DECREF(__pyx_t_39); __pyx_t_39 = 0;
15665 if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1049, __pyx_L1_error)
15666 __Pyx_GOTREF(__pyx_t_2);
15667 __Pyx_DECREF(__pyx_t_38); __pyx_t_38 = 0;
15670 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
15671 __pyx_t_38 = PyMethod_GET_SELF(__pyx_t_5);
15672 if (likely(__pyx_t_38)) {
15673 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_5);
15674 __Pyx_INCREF(__pyx_t_38);
15675 __Pyx_INCREF(
function);
15676 __Pyx_DECREF_SET(__pyx_t_5,
function);
15680 #if CYTHON_FAST_PYCALL 15681 if (PyFunction_Check(__pyx_t_5)) {
15682 PyObject *__pyx_temp[3] = {__pyx_t_38, __pyx_t_4, __pyx_t_2};
15683 __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1049, __pyx_L1_error)
15684 __Pyx_XDECREF(__pyx_t_38); __pyx_t_38 = 0;
15685 __Pyx_GOTREF(__pyx_t_1);
15686 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
15687 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15690 #if CYTHON_FAST_PYCCALL 15691 if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
15692 PyObject *__pyx_temp[3] = {__pyx_t_38, __pyx_t_4, __pyx_t_2};
15693 __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1049, __pyx_L1_error)
15694 __Pyx_XDECREF(__pyx_t_38); __pyx_t_38 = 0;
15695 __Pyx_GOTREF(__pyx_t_1);
15696 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
15697 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15701 __pyx_t_39 = PyTuple_New(2+__pyx_t_14);
if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 1049, __pyx_L1_error)
15702 __Pyx_GOTREF(__pyx_t_39);
15704 __Pyx_GIVEREF(__pyx_t_38); PyTuple_SET_ITEM(__pyx_t_39, 0, __pyx_t_38); __pyx_t_38 = NULL;
15706 __Pyx_GIVEREF(__pyx_t_4);
15707 PyTuple_SET_ITEM(__pyx_t_39, 0+__pyx_t_14, __pyx_t_4);
15708 __Pyx_GIVEREF(__pyx_t_2);
15709 PyTuple_SET_ITEM(__pyx_t_39, 1+__pyx_t_14, __pyx_t_2);
15712 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_39, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1049, __pyx_L1_error)
15713 __Pyx_GOTREF(__pyx_t_1);
15714 __Pyx_DECREF(__pyx_t_39); __pyx_t_39 = 0;
15716 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
15717 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1049, __pyx_L1_error)
15718 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15719 __PYX_XDEC_MEMVIEW(&__pyx_v_AW, 1);
15720 __pyx_v_AW = __pyx_t_6;
15721 __pyx_t_6.memview = NULL;
15722 __pyx_t_6.data = NULL;
15733 if (__pyx_t_41 < 0) __pyx_t_41 += __pyx_v_AW.shape[0];
15734 if (__pyx_t_42 < 0) __pyx_t_42 += __pyx_v_AW.shape[1];
15737 if (__pyx_t_43 < 0) __pyx_t_43 += __pyx_v_AW.shape[0];
15738 if (__pyx_t_44 < 0) __pyx_t_44 += __pyx_v_AW.shape[1];
15741 if (__pyx_t_45 < 0) __pyx_t_45 += __pyx_v_AW.shape[0];
15742 if (__pyx_t_46 < 0) __pyx_t_46 += __pyx_v_AW.shape[1];
15745 if (__pyx_t_47 < 0) __pyx_t_47 += __pyx_v_AW.shape[0];
15746 if (__pyx_t_48 < 0) __pyx_t_48 += __pyx_v_AW.shape[1];
15749 if (__pyx_t_49 < 0) __pyx_t_49 += __pyx_v_AW.shape[0];
15750 if (__pyx_t_50 < 0) __pyx_t_50 += __pyx_v_AW.shape[1];
15753 if (__pyx_t_51 < 0) __pyx_t_51 += __pyx_v_AW.shape[0];
15754 if (__pyx_t_52 < 0) __pyx_t_52 += __pyx_v_AW.shape[1];
15757 if (__pyx_t_53 < 0) __pyx_t_53 += __pyx_v_AW.shape[0];
15758 if (__pyx_t_54 < 0) __pyx_t_54 += __pyx_v_AW.shape[1];
15761 if (__pyx_t_55 < 0) __pyx_t_55 += __pyx_v_AW.shape[0];
15762 if (__pyx_t_56 < 0) __pyx_t_56 += __pyx_v_AW.shape[1];
15763 __pyx_v_IMR = ((((pow((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_41 * __pyx_v_AW.strides[0]) ) + __pyx_t_42 * __pyx_v_AW.strides[1]) ))), 2.0) + pow((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_43 * __pyx_v_AW.strides[0]) ) + __pyx_t_44 * __pyx_v_AW.strides[1]) ))), 2.0)) + pow((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_45 * __pyx_v_AW.strides[0]) ) + __pyx_t_46 * __pyx_v_AW.strides[1]) ))), 2.0)) + pow((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_47 * __pyx_v_AW.strides[0]) ) + __pyx_t_48 * __pyx_v_AW.strides[1]) ))), 2.0)) / (2.0 * fabs((((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_49 * __pyx_v_AW.strides[0]) ) + __pyx_t_50 * __pyx_v_AW.strides[1]) ))) * (*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_51 * __pyx_v_AW.strides[0]) ) + __pyx_t_52 * __pyx_v_AW.strides[1]) )))) - ((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_53 * __pyx_v_AW.strides[0]) ) + __pyx_t_54 * __pyx_v_AW.strides[1]) ))) * (*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_55 * __pyx_v_AW.strides[0]) ) + __pyx_t_56 * __pyx_v_AW.strides[1]) ))))))));
15772 __pyx_t_57 = __pyx_v_eN;
15773 if (__pyx_t_57 < 0) __pyx_t_57 += __pyx_v_IMRElementsArray_.shape[0];
15774 *((
double *) ( (__pyx_v_IMRElementsArray_.data + __pyx_t_57 * __pyx_v_IMRElementsArray_.strides[0]) )) += __pyx_v_IMR;
15784 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15793 __pyx_t_58 = __pyx_v_eN;
15794 if (__pyx_t_58 < 0) __pyx_t_58 += __pyx_v_IMRElementsArray_.shape[0];
15795 __pyx_t_59 = __pyx_v_eN;
15796 if (__pyx_t_59 < 0) __pyx_t_59 += __pyx_v_IMRElementsArray_.shape[0];
15797 *((
double *) ( (__pyx_v_IMRElementsArray_.data + __pyx_t_59 * __pyx_v_IMRElementsArray_.strides[0]) )) = ((*((
double *) ( (__pyx_v_IMRElementsArray_.data + __pyx_t_58 * __pyx_v_IMRElementsArray_.strides[0]) ))) / 3.);
15811 __Pyx_XDECREF(__pyx_t_1);
15812 __Pyx_XDECREF(__pyx_t_2);
15813 __Pyx_XDECREF(__pyx_t_3);
15814 __Pyx_XDECREF(__pyx_t_4);
15815 __Pyx_XDECREF(__pyx_t_5);
15816 __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
15817 __PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
15818 __PYX_XDEC_MEMVIEW(&__pyx_t_17, 1);
15819 __Pyx_XDECREF(__pyx_t_38);
15820 __Pyx_XDECREF(__pyx_t_39);
15821 __Pyx_XDECREF(__pyx_t_40);
15822 __Pyx_WriteUnraisable(
"mprans.MeshSmoothing.cyUpdateInverseMeanRatioTriangleElements", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
15824 __PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
15825 __PYX_XDEC_MEMVIEW(&__pyx_v_A, 1);
15826 __PYX_XDEC_MEMVIEW(&__pyx_v_AW, 1);
15827 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_a, 1);
15828 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_b, 1);
15829 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_c, 1);
15830 __Pyx_RefNannyFinishContext();
15841 static double __pyx_f_6mprans_13MeshSmoothing_cyGetInverseMeanRatioSingleTriangle(
int __pyx_v_node0, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementNodesArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_nodeElementsArray,
struct __pyx_opt_args_6mprans_13MeshSmoothing_cyGetInverseMeanRatioSingleTriangle *__pyx_optional_args) {
15850 bool __pyx_v_el_average = ((bool)0);
15851 __Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
15852 __Pyx_memviewslice __pyx_v_A = { 0, 0, { 0 }, { 0 }, { 0 } };
15853 __Pyx_memviewslice __pyx_v_AW = { 0, 0, { 0 }, { 0 }, { 0 } };
15854 double __pyx_v_IMR_node;
15856 __Pyx_memviewslice __pyx_v_vec_a = { 0, 0, { 0 }, { 0 }, { 0 } };
15857 __Pyx_memviewslice __pyx_v_vec_b = { 0, 0, { 0 }, { 0 }, { 0 } };
15858 __Pyx_memviewslice __pyx_v_vec_c = { 0, 0, { 0 }, { 0 }, { 0 } };
15859 double __pyx_v_IMR;
15860 int __pyx_v_eOffset;
15866 __Pyx_RefNannyDeclarations
15867 PyObject *__pyx_t_1 = NULL;
15868 PyObject *__pyx_t_2 = NULL;
15869 PyObject *__pyx_t_3 = NULL;
15870 PyObject *__pyx_t_4 = NULL;
15871 PyObject *__pyx_t_5 = NULL;
15872 __Pyx_memviewslice __pyx_t_6 = { 0, 0, { 0 }, { 0 }, { 0 } };
15873 Py_ssize_t __pyx_t_7;
15875 Py_ssize_t __pyx_t_9;
15878 Py_ssize_t __pyx_t_12;
15882 Py_ssize_t __pyx_t_16;
15883 Py_ssize_t __pyx_t_17;
15885 Py_ssize_t __pyx_t_19;
15886 Py_ssize_t __pyx_t_20;
15887 __Pyx_memviewslice __pyx_t_21 = { 0, 0, { 0 }, { 0 }, { 0 } };
15888 Py_ssize_t __pyx_t_22;
15889 Py_ssize_t __pyx_t_23;
15890 Py_ssize_t __pyx_t_24;
15891 Py_ssize_t __pyx_t_25;
15892 Py_ssize_t __pyx_t_26;
15893 Py_ssize_t __pyx_t_27;
15894 Py_ssize_t __pyx_t_28;
15895 Py_ssize_t __pyx_t_29;
15896 Py_ssize_t __pyx_t_30;
15897 Py_ssize_t __pyx_t_31;
15898 Py_ssize_t __pyx_t_32;
15899 Py_ssize_t __pyx_t_33;
15900 Py_ssize_t __pyx_t_34;
15901 Py_ssize_t __pyx_t_35;
15902 Py_ssize_t __pyx_t_36;
15903 Py_ssize_t __pyx_t_37;
15904 Py_ssize_t __pyx_t_38;
15905 Py_ssize_t __pyx_t_39;
15906 Py_ssize_t __pyx_t_40;
15907 Py_ssize_t __pyx_t_41;
15908 PyObject *__pyx_t_42 = NULL;
15909 PyObject *__pyx_t_43 = NULL;
15911 Py_ssize_t __pyx_t_45;
15912 Py_ssize_t __pyx_t_46;
15913 Py_ssize_t __pyx_t_47;
15914 Py_ssize_t __pyx_t_48;
15915 Py_ssize_t __pyx_t_49;
15916 Py_ssize_t __pyx_t_50;
15917 Py_ssize_t __pyx_t_51;
15918 Py_ssize_t __pyx_t_52;
15919 Py_ssize_t __pyx_t_53;
15920 Py_ssize_t __pyx_t_54;
15921 Py_ssize_t __pyx_t_55;
15922 Py_ssize_t __pyx_t_56;
15923 Py_ssize_t __pyx_t_57;
15924 Py_ssize_t __pyx_t_58;
15925 Py_ssize_t __pyx_t_59;
15926 Py_ssize_t __pyx_t_60;
15927 Py_ssize_t __pyx_t_61;
15928 Py_ssize_t __pyx_t_62;
15929 Py_ssize_t __pyx_t_63;
15930 Py_ssize_t __pyx_t_64;
15931 Py_ssize_t __pyx_t_65;
15932 Py_ssize_t __pyx_t_66;
15933 Py_ssize_t __pyx_t_67;
15934 Py_ssize_t __pyx_t_68;
15935 Py_ssize_t __pyx_t_69;
15936 Py_ssize_t __pyx_t_70;
15937 Py_ssize_t __pyx_t_71;
15938 Py_ssize_t __pyx_t_72;
15939 Py_ssize_t __pyx_t_73;
15940 Py_ssize_t __pyx_t_74;
15941 Py_ssize_t __pyx_t_75;
15942 Py_ssize_t __pyx_t_76;
15943 Py_ssize_t __pyx_t_77;
15944 Py_ssize_t __pyx_t_78;
15945 Py_ssize_t __pyx_t_79;
15946 Py_ssize_t __pyx_t_80;
15947 Py_ssize_t __pyx_t_81;
15948 Py_ssize_t __pyx_t_82;
15949 Py_ssize_t __pyx_t_83;
15950 Py_ssize_t __pyx_t_84;
15951 Py_ssize_t __pyx_t_85;
15952 Py_ssize_t __pyx_t_86;
15953 Py_ssize_t __pyx_t_87;
15954 Py_ssize_t __pyx_t_88;
15955 Py_ssize_t __pyx_t_89;
15956 Py_ssize_t __pyx_t_90;
15957 Py_ssize_t __pyx_t_91;
15958 Py_ssize_t __pyx_t_92;
15959 Py_ssize_t __pyx_t_93;
15960 Py_ssize_t __pyx_t_94;
15961 Py_ssize_t __pyx_t_95;
15962 Py_ssize_t __pyx_t_96;
15963 Py_ssize_t __pyx_t_97;
15964 Py_ssize_t __pyx_t_98;
15965 __Pyx_RefNannySetupContext(
"cyGetInverseMeanRatioSingleTriangle", 0);
15966 if (__pyx_optional_args) {
15967 if (__pyx_optional_args->__pyx_n > 0) {
15968 __pyx_v_el_average = __pyx_optional_args->el_average;
15979 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1060, __pyx_L1_error)
15980 __Pyx_GOTREF(__pyx_t_2);
15981 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1060, __pyx_L1_error)
15982 __Pyx_GOTREF(__pyx_t_3);
15983 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15984 __pyx_t_2 = PyList_New(2);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1060, __pyx_L1_error)
15985 __Pyx_GOTREF(__pyx_t_2);
15986 __Pyx_INCREF(__pyx_float_1_);
15987 __Pyx_GIVEREF(__pyx_float_1_);
15988 PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_1_);
15989 __Pyx_INCREF(__pyx_float_0_5);
15990 __Pyx_GIVEREF(__pyx_float_0_5);
15991 PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_0_5);
16000 __pyx_t_4 = PyFloat_FromDouble((sqrt(3.0) / 2.));
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1061, __pyx_L1_error)
16001 __Pyx_GOTREF(__pyx_t_4);
16002 __pyx_t_5 = PyList_New(2);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1061, __pyx_L1_error)
16003 __Pyx_GOTREF(__pyx_t_5);
16004 __Pyx_INCREF(__pyx_float_0_);
16005 __Pyx_GIVEREF(__pyx_float_0_);
16006 PyList_SET_ITEM(__pyx_t_5, 0, __pyx_float_0_);
16007 __Pyx_GIVEREF(__pyx_t_4);
16008 PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
16018 __pyx_t_4 = PyList_New(2);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1060, __pyx_L1_error)
16019 __Pyx_GOTREF(__pyx_t_4);
16020 __Pyx_GIVEREF(__pyx_t_2);
16021 PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
16022 __Pyx_GIVEREF(__pyx_t_5);
16023 PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);
16027 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
16028 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
16029 if (likely(__pyx_t_5)) {
16030 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_3);
16031 __Pyx_INCREF(__pyx_t_5);
16032 __Pyx_INCREF(
function);
16033 __Pyx_DECREF_SET(__pyx_t_3,
function);
16036 __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
16037 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
16038 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
16039 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1060, __pyx_L1_error)
16040 __Pyx_GOTREF(__pyx_t_1);
16041 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16042 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1060, __pyx_L1_error)
16043 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16044 __pyx_v_W = __pyx_t_6;
16045 __pyx_t_6.memview = NULL;
16046 __pyx_t_6.data = NULL;
16055 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1062, __pyx_L1_error)
16056 __Pyx_GOTREF(__pyx_t_3);
16057 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1062, __pyx_L1_error)
16058 __Pyx_GOTREF(__pyx_t_4);
16059 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16061 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
16062 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
16063 if (likely(__pyx_t_3)) {
16064 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_4);
16065 __Pyx_INCREF(__pyx_t_3);
16066 __Pyx_INCREF(
function);
16067 __Pyx_DECREF_SET(__pyx_t_4,
function);
16070 __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_tuple__6) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_tuple__6);
16071 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
16072 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1062, __pyx_L1_error)
16073 __Pyx_GOTREF(__pyx_t_1);
16074 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
16075 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1062, __pyx_L1_error)
16076 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16077 __pyx_v_A = __pyx_t_6;
16078 __pyx_t_6.memview = NULL;
16079 __pyx_t_6.data = NULL;
16088 __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1063, __pyx_L1_error)
16089 __Pyx_GOTREF(__pyx_t_4);
16090 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1063, __pyx_L1_error)
16091 __Pyx_GOTREF(__pyx_t_3);
16092 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
16094 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
16095 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
16096 if (likely(__pyx_t_4)) {
16097 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_3);
16098 __Pyx_INCREF(__pyx_t_4);
16099 __Pyx_INCREF(
function);
16100 __Pyx_DECREF_SET(__pyx_t_3,
function);
16103 __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_tuple__6) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_tuple__6);
16104 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
16105 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1063, __pyx_L1_error)
16106 __Pyx_GOTREF(__pyx_t_1);
16107 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16108 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1063, __pyx_L1_error)
16109 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16110 __pyx_v_AW = __pyx_t_6;
16111 __pyx_t_6.memview = NULL;
16112 __pyx_t_6.data = NULL;
16121 __pyx_v_IMR_node = 0.;
16139 __pyx_v_nNel = (__pyx_v_elementNodesArray.shape[1]);
16148 __pyx_t_7 = (__pyx_v_node0 + 1);
16149 if (__pyx_t_7 < 0) __pyx_t_7 += __pyx_v_nodeElementOffsets.shape[0];
16150 __pyx_t_8 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_7 * __pyx_v_nodeElementOffsets.strides[0]) )));
16159 __pyx_t_9 = __pyx_v_node0;
16160 if (__pyx_t_9 < 0) __pyx_t_9 += __pyx_v_nodeElementOffsets.shape[0];
16169 __pyx_t_10 = __pyx_t_8;
16170 for (__pyx_t_11 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_9 * __pyx_v_nodeElementOffsets.strides[0]) ))); __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
16179 __pyx_v_eOffset = __pyx_t_11;
16188 __pyx_t_12 = __pyx_v_eOffset;
16189 if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_v_nodeElementsArray.shape[0];
16190 __pyx_v_eN = (*((
int *) ( (__pyx_v_nodeElementsArray.data + __pyx_t_12 * __pyx_v_nodeElementsArray.strides[0]) )));
16199 __pyx_v_nEl = (__pyx_v_nEl + 1);
16208 __pyx_t_13 = __pyx_v_nNel;
16209 __pyx_t_14 = __pyx_t_13;
16210 for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
16211 __pyx_v_iN = __pyx_t_15;
16220 __pyx_t_16 = __pyx_v_eN;
16221 __pyx_t_17 = __pyx_v_iN;
16222 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_elementNodesArray.shape[0];
16223 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_elementNodesArray.shape[1];
16224 __pyx_v_node = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_16 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_17 * __pyx_v_elementNodesArray.strides[1]) )));
16233 __pyx_t_18 = (__pyx_v_el_average != 0);
16243 __pyx_t_19 = __pyx_v_eN;
16244 __pyx_t_20 = __pyx_v_iN;
16245 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_elementNodesArray.shape[0];
16246 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_elementNodesArray.shape[1];
16247 __pyx_t_21.data = __pyx_v_nodeArray.data;
16248 __pyx_t_21.memview = __pyx_v_nodeArray.memview;
16249 __PYX_INC_MEMVIEW(&__pyx_t_21, 0);
16251 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_19 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_20 * __pyx_v_elementNodesArray.strides[1]) )));
16252 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
16253 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
16254 if (__pyx_tmp_idx < 0)
16255 __pyx_tmp_idx += __pyx_tmp_shape;
16256 if ((0)) __PYX_ERR(0, 1083, __pyx_L1_error)
16257 __pyx_t_21.data += __pyx_tmp_idx * __pyx_tmp_stride;
16260 __pyx_t_21.shape[0] = __pyx_v_nodeArray.shape[1];
16261 __pyx_t_21.strides[0] = __pyx_v_nodeArray.strides[1];
16262 __pyx_t_21.suboffsets[0] = -1;
16264 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_a, 1);
16265 __pyx_v_vec_a = __pyx_t_21;
16266 __pyx_t_21.memview = NULL;
16267 __pyx_t_21.data = NULL;
16276 __pyx_t_22 = __pyx_v_eN;
16277 __pyx_t_23 = (__pyx_v_iN - 1);
16278 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_elementNodesArray.shape[0];
16279 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_elementNodesArray.shape[1];
16280 __pyx_t_21.data = __pyx_v_nodeArray.data;
16281 __pyx_t_21.memview = __pyx_v_nodeArray.memview;
16282 __PYX_INC_MEMVIEW(&__pyx_t_21, 0);
16284 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_22 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_23 * __pyx_v_elementNodesArray.strides[1]) )));
16285 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
16286 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
16287 if (__pyx_tmp_idx < 0)
16288 __pyx_tmp_idx += __pyx_tmp_shape;
16289 if ((0)) __PYX_ERR(0, 1084, __pyx_L1_error)
16290 __pyx_t_21.data += __pyx_tmp_idx * __pyx_tmp_stride;
16293 __pyx_t_21.shape[0] = __pyx_v_nodeArray.shape[1];
16294 __pyx_t_21.strides[0] = __pyx_v_nodeArray.strides[1];
16295 __pyx_t_21.suboffsets[0] = -1;
16297 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_b, 1);
16298 __pyx_v_vec_b = __pyx_t_21;
16299 __pyx_t_21.memview = NULL;
16300 __pyx_t_21.data = NULL;
16309 __pyx_t_24 = __pyx_v_eN;
16310 __pyx_t_25 = (__pyx_v_iN - 2);
16311 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_elementNodesArray.shape[0];
16312 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_elementNodesArray.shape[1];
16313 __pyx_t_21.data = __pyx_v_nodeArray.data;
16314 __pyx_t_21.memview = __pyx_v_nodeArray.memview;
16315 __PYX_INC_MEMVIEW(&__pyx_t_21, 0);
16317 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_24 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_25 * __pyx_v_elementNodesArray.strides[1]) )));
16318 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
16319 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
16320 if (__pyx_tmp_idx < 0)
16321 __pyx_tmp_idx += __pyx_tmp_shape;
16322 if ((0)) __PYX_ERR(0, 1085, __pyx_L1_error)
16323 __pyx_t_21.data += __pyx_tmp_idx * __pyx_tmp_stride;
16326 __pyx_t_21.shape[0] = __pyx_v_nodeArray.shape[1];
16327 __pyx_t_21.strides[0] = __pyx_v_nodeArray.strides[1];
16328 __pyx_t_21.suboffsets[0] = -1;
16330 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_c, 1);
16331 __pyx_v_vec_c = __pyx_t_21;
16332 __pyx_t_21.memview = NULL;
16333 __pyx_t_21.data = NULL;
16343 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_vec_b.shape[0];
16345 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_vec_a.shape[0];
16348 if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_v_A.shape[0];
16349 if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_v_A.shape[1];
16350 *((
double *) ( (( (__pyx_v_A.data + __pyx_t_28 * __pyx_v_A.strides[0]) ) + __pyx_t_29 * __pyx_v_A.strides[1]) )) = ((*((
double *) ( (__pyx_v_vec_b.data + __pyx_t_26 * __pyx_v_vec_b.strides[0]) ))) - (*((
double *) ( (__pyx_v_vec_a.data + __pyx_t_27 * __pyx_v_vec_a.strides[0]) ))));
16360 if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_v_vec_b.shape[0];
16362 if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_v_vec_a.shape[0];
16365 if (__pyx_t_32 < 0) __pyx_t_32 += __pyx_v_A.shape[0];
16366 if (__pyx_t_33 < 0) __pyx_t_33 += __pyx_v_A.shape[1];
16367 *((
double *) ( (( (__pyx_v_A.data + __pyx_t_32 * __pyx_v_A.strides[0]) ) + __pyx_t_33 * __pyx_v_A.strides[1]) )) = ((*((
double *) ( (__pyx_v_vec_b.data + __pyx_t_30 * __pyx_v_vec_b.strides[0]) ))) - (*((
double *) ( (__pyx_v_vec_a.data + __pyx_t_31 * __pyx_v_vec_a.strides[0]) ))));
16377 if (__pyx_t_34 < 0) __pyx_t_34 += __pyx_v_vec_c.shape[0];
16379 if (__pyx_t_35 < 0) __pyx_t_35 += __pyx_v_vec_a.shape[0];
16382 if (__pyx_t_36 < 0) __pyx_t_36 += __pyx_v_A.shape[0];
16383 if (__pyx_t_37 < 0) __pyx_t_37 += __pyx_v_A.shape[1];
16384 *((
double *) ( (( (__pyx_v_A.data + __pyx_t_36 * __pyx_v_A.strides[0]) ) + __pyx_t_37 * __pyx_v_A.strides[1]) )) = ((*((
double *) ( (__pyx_v_vec_c.data + __pyx_t_34 * __pyx_v_vec_c.strides[0]) ))) - (*((
double *) ( (__pyx_v_vec_a.data + __pyx_t_35 * __pyx_v_vec_a.strides[0]) ))));
16394 if (__pyx_t_38 < 0) __pyx_t_38 += __pyx_v_vec_c.shape[0];
16396 if (__pyx_t_39 < 0) __pyx_t_39 += __pyx_v_vec_a.shape[0];
16399 if (__pyx_t_40 < 0) __pyx_t_40 += __pyx_v_A.shape[0];
16400 if (__pyx_t_41 < 0) __pyx_t_41 += __pyx_v_A.shape[1];
16401 *((
double *) ( (( (__pyx_v_A.data + __pyx_t_40 * __pyx_v_A.strides[0]) ) + __pyx_t_41 * __pyx_v_A.strides[1]) )) = ((*((
double *) ( (__pyx_v_vec_c.data + __pyx_t_38 * __pyx_v_vec_c.strides[0]) ))) - (*((
double *) ( (__pyx_v_vec_a.data + __pyx_t_39 * __pyx_v_vec_a.strides[0]) ))));
16410 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1090, __pyx_L1_error)
16411 __Pyx_GOTREF(__pyx_t_3);
16412 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dot);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1090, __pyx_L1_error)
16413 __Pyx_GOTREF(__pyx_t_4);
16414 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16415 __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_A, 2, (PyObject *(*)(
char *)) __pyx_memview_get_double, (
int (*)(
char *, PyObject *)) __pyx_memview_set_double, 0);;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1090, __pyx_L1_error)
16416 __Pyx_GOTREF(__pyx_t_3);
16417 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1090, __pyx_L1_error)
16418 __Pyx_GOTREF(__pyx_t_2);
16419 __pyx_t_42 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_linalg);
if (unlikely(!__pyx_t_42)) __PYX_ERR(0, 1090, __pyx_L1_error)
16420 __Pyx_GOTREF(__pyx_t_42);
16421 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16422 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_42, __pyx_n_s_inv);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1090, __pyx_L1_error)
16423 __Pyx_GOTREF(__pyx_t_2);
16424 __Pyx_DECREF(__pyx_t_42); __pyx_t_42 = 0;
16425 __pyx_t_42 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(
char *)) __pyx_memview_get_double, (
int (*)(
char *, PyObject *)) __pyx_memview_set_double, 0);;
if (unlikely(!__pyx_t_42)) __PYX_ERR(0, 1090, __pyx_L1_error)
16426 __Pyx_GOTREF(__pyx_t_42);
16428 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
16429 __pyx_t_43 = PyMethod_GET_SELF(__pyx_t_2);
16430 if (likely(__pyx_t_43)) {
16431 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_2);
16432 __Pyx_INCREF(__pyx_t_43);
16433 __Pyx_INCREF(
function);
16434 __Pyx_DECREF_SET(__pyx_t_2,
function);
16437 __pyx_t_5 = (__pyx_t_43) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_43, __pyx_t_42) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_42);
16438 __Pyx_XDECREF(__pyx_t_43); __pyx_t_43 = 0;
16439 __Pyx_DECREF(__pyx_t_42); __pyx_t_42 = 0;
16440 if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1090, __pyx_L1_error)
16441 __Pyx_GOTREF(__pyx_t_5);
16442 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16445 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
16446 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
16447 if (likely(__pyx_t_2)) {
16448 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_4);
16449 __Pyx_INCREF(__pyx_t_2);
16450 __Pyx_INCREF(
function);
16451 __Pyx_DECREF_SET(__pyx_t_4,
function);
16455 #if CYTHON_FAST_PYCALL 16456 if (PyFunction_Check(__pyx_t_4)) {
16457 PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_3, __pyx_t_5};
16458 __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_44, 2+__pyx_t_44);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1090, __pyx_L1_error)
16459 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
16460 __Pyx_GOTREF(__pyx_t_1);
16461 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16462 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
16465 #if CYTHON_FAST_PYCCALL 16466 if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
16467 PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_3, __pyx_t_5};
16468 __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_44, 2+__pyx_t_44);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1090, __pyx_L1_error)
16469 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
16470 __Pyx_GOTREF(__pyx_t_1);
16471 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16472 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
16476 __pyx_t_42 = PyTuple_New(2+__pyx_t_44);
if (unlikely(!__pyx_t_42)) __PYX_ERR(0, 1090, __pyx_L1_error)
16477 __Pyx_GOTREF(__pyx_t_42);
16479 __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_42, 0, __pyx_t_2); __pyx_t_2 = NULL;
16481 __Pyx_GIVEREF(__pyx_t_3);
16482 PyTuple_SET_ITEM(__pyx_t_42, 0+__pyx_t_44, __pyx_t_3);
16483 __Pyx_GIVEREF(__pyx_t_5);
16484 PyTuple_SET_ITEM(__pyx_t_42, 1+__pyx_t_44, __pyx_t_5);
16487 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_42, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1090, __pyx_L1_error)
16488 __Pyx_GOTREF(__pyx_t_1);
16489 __Pyx_DECREF(__pyx_t_42); __pyx_t_42 = 0;
16491 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
16492 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1090, __pyx_L1_error)
16493 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16494 __PYX_XDEC_MEMVIEW(&__pyx_v_AW, 1);
16495 __pyx_v_AW = __pyx_t_6;
16496 __pyx_t_6.memview = NULL;
16497 __pyx_t_6.data = NULL;
16508 if (__pyx_t_45 < 0) __pyx_t_45 += __pyx_v_AW.shape[0];
16509 if (__pyx_t_46 < 0) __pyx_t_46 += __pyx_v_AW.shape[1];
16512 if (__pyx_t_47 < 0) __pyx_t_47 += __pyx_v_AW.shape[0];
16513 if (__pyx_t_48 < 0) __pyx_t_48 += __pyx_v_AW.shape[1];
16516 if (__pyx_t_49 < 0) __pyx_t_49 += __pyx_v_AW.shape[0];
16517 if (__pyx_t_50 < 0) __pyx_t_50 += __pyx_v_AW.shape[1];
16520 if (__pyx_t_51 < 0) __pyx_t_51 += __pyx_v_AW.shape[0];
16521 if (__pyx_t_52 < 0) __pyx_t_52 += __pyx_v_AW.shape[1];
16524 if (__pyx_t_53 < 0) __pyx_t_53 += __pyx_v_AW.shape[0];
16525 if (__pyx_t_54 < 0) __pyx_t_54 += __pyx_v_AW.shape[1];
16528 if (__pyx_t_55 < 0) __pyx_t_55 += __pyx_v_AW.shape[0];
16529 if (__pyx_t_56 < 0) __pyx_t_56 += __pyx_v_AW.shape[1];
16532 if (__pyx_t_57 < 0) __pyx_t_57 += __pyx_v_AW.shape[0];
16533 if (__pyx_t_58 < 0) __pyx_t_58 += __pyx_v_AW.shape[1];
16536 if (__pyx_t_59 < 0) __pyx_t_59 += __pyx_v_AW.shape[0];
16537 if (__pyx_t_60 < 0) __pyx_t_60 += __pyx_v_AW.shape[1];
16538 __pyx_v_IMR = ((((pow((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_45 * __pyx_v_AW.strides[0]) ) + __pyx_t_46 * __pyx_v_AW.strides[1]) ))), 2.0) + pow((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_47 * __pyx_v_AW.strides[0]) ) + __pyx_t_48 * __pyx_v_AW.strides[1]) ))), 2.0)) + pow((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_49 * __pyx_v_AW.strides[0]) ) + __pyx_t_50 * __pyx_v_AW.strides[1]) ))), 2.0)) + pow((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_51 * __pyx_v_AW.strides[0]) ) + __pyx_t_52 * __pyx_v_AW.strides[1]) ))), 2.0)) / (2.0 * fabs((((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_53 * __pyx_v_AW.strides[0]) ) + __pyx_t_54 * __pyx_v_AW.strides[1]) ))) * (*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_55 * __pyx_v_AW.strides[0]) ) + __pyx_t_56 * __pyx_v_AW.strides[1]) )))) - ((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_57 * __pyx_v_AW.strides[0]) ) + __pyx_t_58 * __pyx_v_AW.strides[1]) ))) * (*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_59 * __pyx_v_AW.strides[0]) ) + __pyx_t_60 * __pyx_v_AW.strides[1]) ))))))));
16547 __pyx_v_IMR_node = (__pyx_v_IMR_node + (__pyx_v_IMR / 3.));
16567 __pyx_t_18 = ((__pyx_v_node == __pyx_v_node0) != 0);
16577 __pyx_t_61 = __pyx_v_eN;
16578 __pyx_t_62 = __pyx_v_iN;
16579 if (__pyx_t_61 < 0) __pyx_t_61 += __pyx_v_elementNodesArray.shape[0];
16580 if (__pyx_t_62 < 0) __pyx_t_62 += __pyx_v_elementNodesArray.shape[1];
16581 __pyx_t_21.data = __pyx_v_nodeArray.data;
16582 __pyx_t_21.memview = __pyx_v_nodeArray.memview;
16583 __PYX_INC_MEMVIEW(&__pyx_t_21, 0);
16585 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_61 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_62 * __pyx_v_elementNodesArray.strides[1]) )));
16586 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
16587 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
16588 if (__pyx_tmp_idx < 0)
16589 __pyx_tmp_idx += __pyx_tmp_shape;
16590 if ((0)) __PYX_ERR(0, 1095, __pyx_L1_error)
16591 __pyx_t_21.data += __pyx_tmp_idx * __pyx_tmp_stride;
16594 __pyx_t_21.shape[0] = __pyx_v_nodeArray.shape[1];
16595 __pyx_t_21.strides[0] = __pyx_v_nodeArray.strides[1];
16596 __pyx_t_21.suboffsets[0] = -1;
16598 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_a, 1);
16599 __pyx_v_vec_a = __pyx_t_21;
16600 __pyx_t_21.memview = NULL;
16601 __pyx_t_21.data = NULL;
16610 __pyx_t_63 = __pyx_v_eN;
16611 __pyx_t_64 = (__pyx_v_iN - 1);
16612 if (__pyx_t_63 < 0) __pyx_t_63 += __pyx_v_elementNodesArray.shape[0];
16613 if (__pyx_t_64 < 0) __pyx_t_64 += __pyx_v_elementNodesArray.shape[1];
16614 __pyx_t_21.data = __pyx_v_nodeArray.data;
16615 __pyx_t_21.memview = __pyx_v_nodeArray.memview;
16616 __PYX_INC_MEMVIEW(&__pyx_t_21, 0);
16618 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_63 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_64 * __pyx_v_elementNodesArray.strides[1]) )));
16619 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
16620 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
16621 if (__pyx_tmp_idx < 0)
16622 __pyx_tmp_idx += __pyx_tmp_shape;
16623 if ((0)) __PYX_ERR(0, 1096, __pyx_L1_error)
16624 __pyx_t_21.data += __pyx_tmp_idx * __pyx_tmp_stride;
16627 __pyx_t_21.shape[0] = __pyx_v_nodeArray.shape[1];
16628 __pyx_t_21.strides[0] = __pyx_v_nodeArray.strides[1];
16629 __pyx_t_21.suboffsets[0] = -1;
16631 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_b, 1);
16632 __pyx_v_vec_b = __pyx_t_21;
16633 __pyx_t_21.memview = NULL;
16634 __pyx_t_21.data = NULL;
16643 __pyx_t_65 = __pyx_v_eN;
16644 __pyx_t_66 = (__pyx_v_iN - 2);
16645 if (__pyx_t_65 < 0) __pyx_t_65 += __pyx_v_elementNodesArray.shape[0];
16646 if (__pyx_t_66 < 0) __pyx_t_66 += __pyx_v_elementNodesArray.shape[1];
16647 __pyx_t_21.data = __pyx_v_nodeArray.data;
16648 __pyx_t_21.memview = __pyx_v_nodeArray.memview;
16649 __PYX_INC_MEMVIEW(&__pyx_t_21, 0);
16651 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_65 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_66 * __pyx_v_elementNodesArray.strides[1]) )));
16652 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
16653 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
16654 if (__pyx_tmp_idx < 0)
16655 __pyx_tmp_idx += __pyx_tmp_shape;
16656 if ((0)) __PYX_ERR(0, 1097, __pyx_L1_error)
16657 __pyx_t_21.data += __pyx_tmp_idx * __pyx_tmp_stride;
16660 __pyx_t_21.shape[0] = __pyx_v_nodeArray.shape[1];
16661 __pyx_t_21.strides[0] = __pyx_v_nodeArray.strides[1];
16662 __pyx_t_21.suboffsets[0] = -1;
16664 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_c, 1);
16665 __pyx_v_vec_c = __pyx_t_21;
16666 __pyx_t_21.memview = NULL;
16667 __pyx_t_21.data = NULL;
16677 if (__pyx_t_67 < 0) __pyx_t_67 += __pyx_v_vec_b.shape[0];
16679 if (__pyx_t_68 < 0) __pyx_t_68 += __pyx_v_vec_a.shape[0];
16682 if (__pyx_t_69 < 0) __pyx_t_69 += __pyx_v_A.shape[0];
16683 if (__pyx_t_70 < 0) __pyx_t_70 += __pyx_v_A.shape[1];
16684 *((
double *) ( (( (__pyx_v_A.data + __pyx_t_69 * __pyx_v_A.strides[0]) ) + __pyx_t_70 * __pyx_v_A.strides[1]) )) = ((*((
double *) ( (__pyx_v_vec_b.data + __pyx_t_67 * __pyx_v_vec_b.strides[0]) ))) - (*((
double *) ( (__pyx_v_vec_a.data + __pyx_t_68 * __pyx_v_vec_a.strides[0]) ))));
16694 if (__pyx_t_71 < 0) __pyx_t_71 += __pyx_v_vec_b.shape[0];
16696 if (__pyx_t_72 < 0) __pyx_t_72 += __pyx_v_vec_a.shape[0];
16699 if (__pyx_t_73 < 0) __pyx_t_73 += __pyx_v_A.shape[0];
16700 if (__pyx_t_74 < 0) __pyx_t_74 += __pyx_v_A.shape[1];
16701 *((
double *) ( (( (__pyx_v_A.data + __pyx_t_73 * __pyx_v_A.strides[0]) ) + __pyx_t_74 * __pyx_v_A.strides[1]) )) = ((*((
double *) ( (__pyx_v_vec_b.data + __pyx_t_71 * __pyx_v_vec_b.strides[0]) ))) - (*((
double *) ( (__pyx_v_vec_a.data + __pyx_t_72 * __pyx_v_vec_a.strides[0]) ))));
16711 if (__pyx_t_75 < 0) __pyx_t_75 += __pyx_v_vec_c.shape[0];
16713 if (__pyx_t_76 < 0) __pyx_t_76 += __pyx_v_vec_a.shape[0];
16716 if (__pyx_t_77 < 0) __pyx_t_77 += __pyx_v_A.shape[0];
16717 if (__pyx_t_78 < 0) __pyx_t_78 += __pyx_v_A.shape[1];
16718 *((
double *) ( (( (__pyx_v_A.data + __pyx_t_77 * __pyx_v_A.strides[0]) ) + __pyx_t_78 * __pyx_v_A.strides[1]) )) = ((*((
double *) ( (__pyx_v_vec_c.data + __pyx_t_75 * __pyx_v_vec_c.strides[0]) ))) - (*((
double *) ( (__pyx_v_vec_a.data + __pyx_t_76 * __pyx_v_vec_a.strides[0]) ))));
16728 if (__pyx_t_79 < 0) __pyx_t_79 += __pyx_v_vec_c.shape[0];
16730 if (__pyx_t_80 < 0) __pyx_t_80 += __pyx_v_vec_a.shape[0];
16733 if (__pyx_t_81 < 0) __pyx_t_81 += __pyx_v_A.shape[0];
16734 if (__pyx_t_82 < 0) __pyx_t_82 += __pyx_v_A.shape[1];
16735 *((
double *) ( (( (__pyx_v_A.data + __pyx_t_81 * __pyx_v_A.strides[0]) ) + __pyx_t_82 * __pyx_v_A.strides[1]) )) = ((*((
double *) ( (__pyx_v_vec_c.data + __pyx_t_79 * __pyx_v_vec_c.strides[0]) ))) - (*((
double *) ( (__pyx_v_vec_a.data + __pyx_t_80 * __pyx_v_vec_a.strides[0]) ))));
16744 __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1102, __pyx_L1_error)
16745 __Pyx_GOTREF(__pyx_t_4);
16746 __pyx_t_42 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_dot);
if (unlikely(!__pyx_t_42)) __PYX_ERR(0, 1102, __pyx_L1_error)
16747 __Pyx_GOTREF(__pyx_t_42);
16748 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
16749 __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_A, 2, (PyObject *(*)(
char *)) __pyx_memview_get_double, (
int (*)(
char *, PyObject *)) __pyx_memview_set_double, 0);;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1102, __pyx_L1_error)
16750 __Pyx_GOTREF(__pyx_t_4);
16751 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1102, __pyx_L1_error)
16752 __Pyx_GOTREF(__pyx_t_3);
16753 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_linalg);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1102, __pyx_L1_error)
16754 __Pyx_GOTREF(__pyx_t_2);
16755 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16756 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_inv);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1102, __pyx_L1_error)
16757 __Pyx_GOTREF(__pyx_t_3);
16758 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16759 __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(
char *)) __pyx_memview_get_double, (
int (*)(
char *, PyObject *)) __pyx_memview_set_double, 0);;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1102, __pyx_L1_error)
16760 __Pyx_GOTREF(__pyx_t_2);
16762 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
16763 __pyx_t_43 = PyMethod_GET_SELF(__pyx_t_3);
16764 if (likely(__pyx_t_43)) {
16765 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_3);
16766 __Pyx_INCREF(__pyx_t_43);
16767 __Pyx_INCREF(
function);
16768 __Pyx_DECREF_SET(__pyx_t_3,
function);
16771 __pyx_t_5 = (__pyx_t_43) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_43, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2);
16772 __Pyx_XDECREF(__pyx_t_43); __pyx_t_43 = 0;
16773 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16774 if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1102, __pyx_L1_error)
16775 __Pyx_GOTREF(__pyx_t_5);
16776 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16779 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_42))) {
16780 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_42);
16781 if (likely(__pyx_t_3)) {
16782 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_42);
16783 __Pyx_INCREF(__pyx_t_3);
16784 __Pyx_INCREF(
function);
16785 __Pyx_DECREF_SET(__pyx_t_42,
function);
16789 #if CYTHON_FAST_PYCALL 16790 if (PyFunction_Check(__pyx_t_42)) {
16791 PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_4, __pyx_t_5};
16792 __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_42, __pyx_temp+1-__pyx_t_44, 2+__pyx_t_44);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1102, __pyx_L1_error)
16793 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
16794 __Pyx_GOTREF(__pyx_t_1);
16795 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
16796 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
16799 #if CYTHON_FAST_PYCCALL 16800 if (__Pyx_PyFastCFunction_Check(__pyx_t_42)) {
16801 PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_4, __pyx_t_5};
16802 __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_42, __pyx_temp+1-__pyx_t_44, 2+__pyx_t_44);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1102, __pyx_L1_error)
16803 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
16804 __Pyx_GOTREF(__pyx_t_1);
16805 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
16806 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
16810 __pyx_t_2 = PyTuple_New(2+__pyx_t_44);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1102, __pyx_L1_error)
16811 __Pyx_GOTREF(__pyx_t_2);
16813 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL;
16815 __Pyx_GIVEREF(__pyx_t_4);
16816 PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_44, __pyx_t_4);
16817 __Pyx_GIVEREF(__pyx_t_5);
16818 PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_44, __pyx_t_5);
16821 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_42, __pyx_t_2, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1102, __pyx_L1_error)
16822 __Pyx_GOTREF(__pyx_t_1);
16823 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16825 __Pyx_DECREF(__pyx_t_42); __pyx_t_42 = 0;
16826 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1102, __pyx_L1_error)
16827 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16828 __PYX_XDEC_MEMVIEW(&__pyx_v_AW, 1);
16829 __pyx_v_AW = __pyx_t_6;
16830 __pyx_t_6.memview = NULL;
16831 __pyx_t_6.data = NULL;
16842 if (__pyx_t_83 < 0) __pyx_t_83 += __pyx_v_AW.shape[0];
16843 if (__pyx_t_84 < 0) __pyx_t_84 += __pyx_v_AW.shape[1];
16846 if (__pyx_t_85 < 0) __pyx_t_85 += __pyx_v_AW.shape[0];
16847 if (__pyx_t_86 < 0) __pyx_t_86 += __pyx_v_AW.shape[1];
16850 if (__pyx_t_87 < 0) __pyx_t_87 += __pyx_v_AW.shape[0];
16851 if (__pyx_t_88 < 0) __pyx_t_88 += __pyx_v_AW.shape[1];
16854 if (__pyx_t_89 < 0) __pyx_t_89 += __pyx_v_AW.shape[0];
16855 if (__pyx_t_90 < 0) __pyx_t_90 += __pyx_v_AW.shape[1];
16858 if (__pyx_t_91 < 0) __pyx_t_91 += __pyx_v_AW.shape[0];
16859 if (__pyx_t_92 < 0) __pyx_t_92 += __pyx_v_AW.shape[1];
16862 if (__pyx_t_93 < 0) __pyx_t_93 += __pyx_v_AW.shape[0];
16863 if (__pyx_t_94 < 0) __pyx_t_94 += __pyx_v_AW.shape[1];
16866 if (__pyx_t_95 < 0) __pyx_t_95 += __pyx_v_AW.shape[0];
16867 if (__pyx_t_96 < 0) __pyx_t_96 += __pyx_v_AW.shape[1];
16870 if (__pyx_t_97 < 0) __pyx_t_97 += __pyx_v_AW.shape[0];
16871 if (__pyx_t_98 < 0) __pyx_t_98 += __pyx_v_AW.shape[1];
16872 __pyx_v_IMR = ((((pow((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_83 * __pyx_v_AW.strides[0]) ) + __pyx_t_84 * __pyx_v_AW.strides[1]) ))), 2.0) + pow((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_85 * __pyx_v_AW.strides[0]) ) + __pyx_t_86 * __pyx_v_AW.strides[1]) ))), 2.0)) + pow((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_87 * __pyx_v_AW.strides[0]) ) + __pyx_t_88 * __pyx_v_AW.strides[1]) ))), 2.0)) + pow((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_89 * __pyx_v_AW.strides[0]) ) + __pyx_t_90 * __pyx_v_AW.strides[1]) ))), 2.0)) / (2.0 * fabs((((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_91 * __pyx_v_AW.strides[0]) ) + __pyx_t_92 * __pyx_v_AW.strides[1]) ))) * (*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_93 * __pyx_v_AW.strides[0]) ) + __pyx_t_94 * __pyx_v_AW.strides[1]) )))) - ((*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_95 * __pyx_v_AW.strides[0]) ) + __pyx_t_96 * __pyx_v_AW.strides[1]) ))) * (*((
double *) ( (( (__pyx_v_AW.data + __pyx_t_97 * __pyx_v_AW.strides[0]) ) + __pyx_t_98 * __pyx_v_AW.strides[1]) ))))))));
16881 __pyx_v_IMR_node = (__pyx_v_IMR_node + __pyx_v_IMR);
16903 __pyx_v_IMR_node = (__pyx_v_IMR_node / __pyx_v_nEl);
16912 __pyx_r = __pyx_v_IMR_node;
16925 __Pyx_XDECREF(__pyx_t_1);
16926 __Pyx_XDECREF(__pyx_t_2);
16927 __Pyx_XDECREF(__pyx_t_3);
16928 __Pyx_XDECREF(__pyx_t_4);
16929 __Pyx_XDECREF(__pyx_t_5);
16930 __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
16931 __PYX_XDEC_MEMVIEW(&__pyx_t_21, 1);
16932 __Pyx_XDECREF(__pyx_t_42);
16933 __Pyx_XDECREF(__pyx_t_43);
16934 __Pyx_WriteUnraisable(
"mprans.MeshSmoothing.cyGetInverseMeanRatioSingleTriangle", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
16937 __PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
16938 __PYX_XDEC_MEMVIEW(&__pyx_v_A, 1);
16939 __PYX_XDEC_MEMVIEW(&__pyx_v_AW, 1);
16940 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_a, 1);
16941 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_b, 1);
16942 __PYX_XDEC_MEMVIEW(&__pyx_v_vec_c, 1);
16943 __Pyx_RefNannyFinishContext();
16955 static __Pyx_memviewslice __pyx_f_6mprans_13MeshSmoothing_cySmoothNodesQuality(__Pyx_memviewslice __pyx_v_distortion, CYTHON_UNUSED __Pyx_memviewslice __pyx_v_dilation, __Pyx_memviewslice __pyx_v_nodeArray,
int __pyx_v_nNodes_owned, __Pyx_memviewslice __pyx_v_nodeMaterialTypes, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_elementNodesArray,
struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesQuality *__pyx_optional_args) {
16964 bool __pyx_v_apply_directly = ((bool)0);
16965 __Pyx_memviewslice __pyx_v_disp = { 0, 0, { 0 }, { 0 }, { 0 } };
16966 __Pyx_memviewslice __pyx_v_nodeArrayMod = { 0, 0, { 0 }, { 0 }, { 0 } };
16967 double __pyx_v_weighted_pos[3];
16969 double __pyx_v_weight;
16970 double __pyx_v_weights;
16972 int __pyx_v_eOffset;
16974 int __pyx_v_eNnode;
16976 __Pyx_memviewslice __pyx_r = { 0, 0, { 0 }, { 0 }, { 0 } };
16977 __Pyx_RefNannyDeclarations
16978 __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
16983 Py_ssize_t __pyx_t_6;
16984 Py_ssize_t __pyx_t_7;
16986 Py_ssize_t __pyx_t_9;
16989 Py_ssize_t __pyx_t_12;
16993 Py_ssize_t __pyx_t_16;
16994 Py_ssize_t __pyx_t_17;
16995 Py_ssize_t __pyx_t_18;
16997 Py_ssize_t __pyx_t_20;
16998 Py_ssize_t __pyx_t_21;
16999 Py_ssize_t __pyx_t_22;
17000 Py_ssize_t __pyx_t_23;
17001 Py_ssize_t __pyx_t_24;
17002 Py_ssize_t __pyx_t_25;
17003 Py_ssize_t __pyx_t_26;
17004 Py_ssize_t __pyx_t_27;
17005 Py_ssize_t __pyx_t_28;
17006 Py_ssize_t __pyx_t_29;
17007 Py_ssize_t __pyx_t_30;
17008 Py_ssize_t __pyx_t_31;
17009 Py_ssize_t __pyx_t_32;
17010 Py_ssize_t __pyx_t_33;
17011 Py_ssize_t __pyx_t_34;
17012 Py_ssize_t __pyx_t_35;
17013 Py_ssize_t __pyx_t_36;
17014 Py_ssize_t __pyx_t_37;
17015 Py_ssize_t __pyx_t_38;
17016 Py_ssize_t __pyx_t_39;
17017 Py_ssize_t __pyx_t_40;
17018 Py_ssize_t __pyx_t_41;
17019 Py_ssize_t __pyx_t_42;
17020 Py_ssize_t __pyx_t_43;
17021 Py_ssize_t __pyx_t_44;
17022 Py_ssize_t __pyx_t_45;
17023 Py_ssize_t __pyx_t_46;
17024 Py_ssize_t __pyx_t_47;
17025 Py_ssize_t __pyx_t_48;
17026 Py_ssize_t __pyx_t_49;
17027 __Pyx_RefNannySetupContext(
"cySmoothNodesQuality", 0);
17028 if (__pyx_optional_args) {
17029 if (__pyx_optional_args->__pyx_n > 0) {
17030 __pyx_v_apply_directly = __pyx_optional_args->apply_directly;
17041 __pyx_t_1 = __pyx_memoryview_copy_slice_d_dc_double_c(__pyx_v_nodeArray);
if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 1117, __pyx_L1_error)
17042 __pyx_v_disp = __pyx_t_1;
17043 __pyx_t_1.memview = NULL;
17044 __pyx_t_1.data = NULL;
17053 __pyx_t_2 = ((!(__pyx_v_apply_directly != 0)) != 0);
17063 __pyx_t_1 = __pyx_memoryview_copy_slice_d_dc_double_c(__pyx_v_nodeArray);
if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(0, 1120, __pyx_L1_error)
17064 __pyx_v_nodeArrayMod = __pyx_t_1;
17065 __pyx_t_1.memview = NULL;
17066 __pyx_t_1.data = NULL;
17086 __PYX_INC_MEMVIEW(&__pyx_v_nodeArray, 0);
17087 __pyx_v_nodeArrayMod = __pyx_v_nodeArray;
17098 __pyx_v_nNel = (__pyx_v_elementNodesArray.shape[1]);
17107 __pyx_v_weight = 0.0;
17116 __pyx_v_weights = 0.0;
17125 __pyx_t_3 = __pyx_v_nNodes_owned;
17126 __pyx_t_4 = __pyx_t_3;
17127 for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
17128 __pyx_v_node = __pyx_t_5;
17137 __pyx_t_6 = __pyx_v_node;
17138 if (__pyx_t_6 < 0) __pyx_t_6 += __pyx_v_nodeMaterialTypes.shape[0];
17139 __pyx_t_2 = (((*((
int *) ( (__pyx_v_nodeMaterialTypes.data + __pyx_t_6 * __pyx_v_nodeMaterialTypes.strides[0]) ))) == 0) != 0);
17149 __pyx_v_weights = 0.0;
17158 (__pyx_v_weighted_pos[0]) = 0.0;
17167 (__pyx_v_weighted_pos[1]) = 0.0;
17176 (__pyx_v_weighted_pos[2]) = 0.0;
17185 __pyx_t_7 = (__pyx_v_node + 1);
17186 if (__pyx_t_7 < 0) __pyx_t_7 += __pyx_v_nodeElementOffsets.shape[0];
17187 __pyx_t_8 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_7 * __pyx_v_nodeElementOffsets.strides[0]) )));
17196 __pyx_t_9 = __pyx_v_node;
17197 if (__pyx_t_9 < 0) __pyx_t_9 += __pyx_v_nodeElementOffsets.shape[0];
17206 __pyx_t_10 = __pyx_t_8;
17207 for (__pyx_t_11 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_9 * __pyx_v_nodeElementOffsets.strides[0]) ))); __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
17216 __pyx_v_eOffset = __pyx_t_11;
17225 __pyx_t_12 = __pyx_v_eOffset;
17226 if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_v_nodeElementsArray.shape[0];
17227 __pyx_v_eN = (*((
int *) ( (__pyx_v_nodeElementsArray.data + __pyx_t_12 * __pyx_v_nodeElementsArray.strides[0]) )));
17236 __pyx_t_13 = __pyx_v_nNel;
17237 __pyx_t_14 = __pyx_t_13;
17238 for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
17239 __pyx_v_iN = __pyx_t_15;
17248 __pyx_t_16 = __pyx_v_eN;
17249 __pyx_t_17 = __pyx_v_iN;
17250 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_elementNodesArray.shape[0];
17251 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_elementNodesArray.shape[1];
17252 __pyx_v_eNnode = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_16 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_17 * __pyx_v_elementNodesArray.strides[1]) )));
17261 __pyx_t_2 = ((__pyx_v_eNnode != __pyx_v_node) != 0);
17271 __pyx_t_18 = __pyx_v_eN;
17272 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_distortion.shape[0];
17273 __pyx_v_weight = (*((
double *) ( (__pyx_v_distortion.data + __pyx_t_18 * __pyx_v_distortion.strides[0]) )));
17283 __pyx_t_20 = __pyx_v_eNnode;
17285 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_nodeArrayMod.shape[0];
17286 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_nodeArrayMod.shape[1];
17287 (__pyx_v_weighted_pos[__pyx_t_19]) = ((__pyx_v_weighted_pos[__pyx_t_19]) + ((*((
double *) ( (( (__pyx_v_nodeArrayMod.data + __pyx_t_20 * __pyx_v_nodeArrayMod.strides[0]) ) + __pyx_t_21 * __pyx_v_nodeArrayMod.strides[1]) ))) * __pyx_v_weight));
17297 __pyx_t_22 = __pyx_v_eNnode;
17299 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_nodeArrayMod.shape[0];
17300 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_nodeArrayMod.shape[1];
17301 (__pyx_v_weighted_pos[__pyx_t_19]) = ((__pyx_v_weighted_pos[__pyx_t_19]) + ((*((
double *) ( (( (__pyx_v_nodeArrayMod.data + __pyx_t_22 * __pyx_v_nodeArrayMod.strides[0]) ) + __pyx_t_23 * __pyx_v_nodeArrayMod.strides[1]) ))) * __pyx_v_weight));
17311 __pyx_t_24 = __pyx_v_eNnode;
17313 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_nodeArrayMod.shape[0];
17314 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_nodeArrayMod.shape[1];
17315 (__pyx_v_weighted_pos[__pyx_t_19]) = ((__pyx_v_weighted_pos[__pyx_t_19]) + ((*((
double *) ( (( (__pyx_v_nodeArrayMod.data + __pyx_t_24 * __pyx_v_nodeArrayMod.strides[0]) ) + __pyx_t_25 * __pyx_v_nodeArrayMod.strides[1]) ))) * __pyx_v_weight));
17324 __pyx_v_weights = (__pyx_v_weights + __pyx_v_weight);
17343 __pyx_t_26 = __pyx_v_node;
17345 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_nodeArrayMod.shape[0];
17346 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_nodeArrayMod.shape[1];
17347 *((
double *) ( (( (__pyx_v_nodeArrayMod.data + __pyx_t_26 * __pyx_v_nodeArrayMod.strides[0]) ) + __pyx_t_27 * __pyx_v_nodeArrayMod.strides[1]) )) = ((__pyx_v_weighted_pos[0]) / __pyx_v_weights);
17356 __pyx_t_28 = __pyx_v_node;
17358 if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_v_nodeArrayMod.shape[0];
17359 if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_v_nodeArrayMod.shape[1];
17360 *((
double *) ( (( (__pyx_v_nodeArrayMod.data + __pyx_t_28 * __pyx_v_nodeArrayMod.strides[0]) ) + __pyx_t_29 * __pyx_v_nodeArrayMod.strides[1]) )) = ((__pyx_v_weighted_pos[1]) / __pyx_v_weights);
17369 __pyx_t_30 = __pyx_v_node;
17371 if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_v_nodeArrayMod.shape[0];
17372 if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_v_nodeArrayMod.shape[1];
17373 *((
double *) ( (( (__pyx_v_nodeArrayMod.data + __pyx_t_30 * __pyx_v_nodeArrayMod.strides[0]) ) + __pyx_t_31 * __pyx_v_nodeArrayMod.strides[1]) )) = ((__pyx_v_weighted_pos[2]) / __pyx_v_weights);
17392 __pyx_t_32 = __pyx_v_node;
17394 if (__pyx_t_32 < 0) __pyx_t_32 += __pyx_v_disp.shape[0];
17395 if (__pyx_t_33 < 0) __pyx_t_33 += __pyx_v_disp.shape[1];
17396 __pyx_t_34 = __pyx_v_node;
17398 if (__pyx_t_34 < 0) __pyx_t_34 += __pyx_v_nodeArray.shape[0];
17399 if (__pyx_t_35 < 0) __pyx_t_35 += __pyx_v_nodeArray.shape[1];
17400 __pyx_t_36 = __pyx_v_node;
17402 if (__pyx_t_36 < 0) __pyx_t_36 += __pyx_v_disp.shape[0];
17403 if (__pyx_t_37 < 0) __pyx_t_37 += __pyx_v_disp.shape[1];
17404 *((
double *) ( (( (__pyx_v_disp.data + __pyx_t_36 * __pyx_v_disp.strides[0]) ) + __pyx_t_37 * __pyx_v_disp.strides[1]) )) = ((*((
double *) ( (( (__pyx_v_disp.data + __pyx_t_32 * __pyx_v_disp.strides[0]) ) + __pyx_t_33 * __pyx_v_disp.strides[1]) ))) - (*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_34 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_35 * __pyx_v_nodeArray.strides[1]) ))));
17413 __pyx_t_38 = __pyx_v_node;
17415 if (__pyx_t_38 < 0) __pyx_t_38 += __pyx_v_disp.shape[0];
17416 if (__pyx_t_39 < 0) __pyx_t_39 += __pyx_v_disp.shape[1];
17417 __pyx_t_40 = __pyx_v_node;
17419 if (__pyx_t_40 < 0) __pyx_t_40 += __pyx_v_nodeArray.shape[0];
17420 if (__pyx_t_41 < 0) __pyx_t_41 += __pyx_v_nodeArray.shape[1];
17421 __pyx_t_42 = __pyx_v_node;
17423 if (__pyx_t_42 < 0) __pyx_t_42 += __pyx_v_disp.shape[0];
17424 if (__pyx_t_43 < 0) __pyx_t_43 += __pyx_v_disp.shape[1];
17425 *((
double *) ( (( (__pyx_v_disp.data + __pyx_t_42 * __pyx_v_disp.strides[0]) ) + __pyx_t_43 * __pyx_v_disp.strides[1]) )) = ((*((
double *) ( (( (__pyx_v_disp.data + __pyx_t_38 * __pyx_v_disp.strides[0]) ) + __pyx_t_39 * __pyx_v_disp.strides[1]) ))) - (*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_40 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_41 * __pyx_v_nodeArray.strides[1]) ))));
17434 __pyx_t_44 = __pyx_v_node;
17436 if (__pyx_t_44 < 0) __pyx_t_44 += __pyx_v_disp.shape[0];
17437 if (__pyx_t_45 < 0) __pyx_t_45 += __pyx_v_disp.shape[1];
17438 __pyx_t_46 = __pyx_v_node;
17440 if (__pyx_t_46 < 0) __pyx_t_46 += __pyx_v_nodeArray.shape[0];
17441 if (__pyx_t_47 < 0) __pyx_t_47 += __pyx_v_nodeArray.shape[1];
17442 __pyx_t_48 = __pyx_v_node;
17444 if (__pyx_t_48 < 0) __pyx_t_48 += __pyx_v_disp.shape[0];
17445 if (__pyx_t_49 < 0) __pyx_t_49 += __pyx_v_disp.shape[1];
17446 *((
double *) ( (( (__pyx_v_disp.data + __pyx_t_48 * __pyx_v_disp.strides[0]) ) + __pyx_t_49 * __pyx_v_disp.strides[1]) )) = ((*((
double *) ( (( (__pyx_v_disp.data + __pyx_t_44 * __pyx_v_disp.strides[0]) ) + __pyx_t_45 * __pyx_v_disp.strides[1]) ))) - (*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_46 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_47 * __pyx_v_nodeArray.strides[1]) ))));
17456 __PYX_INC_MEMVIEW(&__pyx_v_disp, 0);
17457 __pyx_r = __pyx_v_disp;
17470 __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
17471 __pyx_r.data = NULL;
17472 __pyx_r.memview = NULL;
17473 __Pyx_AddTraceback(
"mprans.MeshSmoothing.cySmoothNodesQuality", __pyx_clineno, __pyx_lineno, __pyx_filename);
17476 if (unlikely(!__pyx_r.memview)) {
17477 PyErr_SetString(PyExc_TypeError,
"Memoryview return value is not initialized");
17480 __PYX_XDEC_MEMVIEW(&__pyx_v_disp, 1);
17481 __PYX_XDEC_MEMVIEW(&__pyx_v_nodeArrayMod, 1);
17482 __Pyx_RefNannyFinishContext();
17494 static int __pyx_f_6mprans_13MeshSmoothing_pyxGetLocalNearestNode(__Pyx_memviewslice __pyx_v_coords, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_nodeStarOffsets, __Pyx_memviewslice __pyx_v_nodeStarArray,
int __pyx_v_node) {
17495 int __pyx_v_nearest_node;
17496 int __pyx_v_nearest_node0;
17497 double __pyx_v_dist;
17498 double __pyx_v_min_dist;
17499 __Pyx_memviewslice __pyx_v_node_coords = { 0, 0, { 0 }, { 0 }, { 0 } };
17500 bool __pyx_v_found_node;
17502 int __pyx_v_nOffset;
17504 __Pyx_RefNannyDeclarations
17505 __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
17506 Py_ssize_t __pyx_t_2;
17507 Py_ssize_t __pyx_t_3;
17508 Py_ssize_t __pyx_t_4;
17509 Py_ssize_t __pyx_t_5;
17510 Py_ssize_t __pyx_t_6;
17511 Py_ssize_t __pyx_t_7;
17512 Py_ssize_t __pyx_t_8;
17513 Py_ssize_t __pyx_t_9;
17514 Py_ssize_t __pyx_t_10;
17515 Py_ssize_t __pyx_t_11;
17516 Py_ssize_t __pyx_t_12;
17517 Py_ssize_t __pyx_t_13;
17519 Py_ssize_t __pyx_t_15;
17521 Py_ssize_t __pyx_t_17;
17524 Py_ssize_t __pyx_t_20;
17525 Py_ssize_t __pyx_t_21;
17526 Py_ssize_t __pyx_t_22;
17527 Py_ssize_t __pyx_t_23;
17528 Py_ssize_t __pyx_t_24;
17529 Py_ssize_t __pyx_t_25;
17530 Py_ssize_t __pyx_t_26;
17531 Py_ssize_t __pyx_t_27;
17532 Py_ssize_t __pyx_t_28;
17533 Py_ssize_t __pyx_t_29;
17534 Py_ssize_t __pyx_t_30;
17535 Py_ssize_t __pyx_t_31;
17536 Py_ssize_t __pyx_t_32;
17537 __Pyx_RefNannySetupContext(
"pyxGetLocalNearestNode", 0);
17546 __pyx_v_nearest_node = __pyx_v_node;
17555 __pyx_v_nearest_node0 = __pyx_v_node;
17564 __pyx_t_1.data = __pyx_v_nodeArray.data;
17565 __pyx_t_1.memview = __pyx_v_nodeArray.memview;
17566 __PYX_INC_MEMVIEW(&__pyx_t_1, 0);
17568 Py_ssize_t __pyx_tmp_idx = __pyx_v_nearest_node;
17569 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
17570 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
17571 if (__pyx_tmp_idx < 0)
17572 __pyx_tmp_idx += __pyx_tmp_shape;
17573 if ((0)) __PYX_ERR(0, 1167, __pyx_L1_error)
17574 __pyx_t_1.data += __pyx_tmp_idx * __pyx_tmp_stride;
17577 __pyx_t_1.shape[0] = __pyx_v_nodeArray.shape[1];
17578 __pyx_t_1.strides[0] = __pyx_v_nodeArray.strides[1];
17579 __pyx_t_1.suboffsets[0] = -1;
17581 __pyx_v_node_coords = __pyx_t_1;
17582 __pyx_t_1.memview = NULL;
17583 __pyx_t_1.data = NULL;
17592 __pyx_v_found_node = 0;
17602 if (__pyx_t_2 < 0) __pyx_t_2 += __pyx_v_node_coords.shape[0];
17604 if (__pyx_t_3 < 0) __pyx_t_3 += __pyx_v_coords.shape[0];
17606 if (__pyx_t_4 < 0) __pyx_t_4 += __pyx_v_node_coords.shape[0];
17608 if (__pyx_t_5 < 0) __pyx_t_5 += __pyx_v_coords.shape[0];
17618 if (__pyx_t_6 < 0) __pyx_t_6 += __pyx_v_node_coords.shape[0];
17620 if (__pyx_t_7 < 0) __pyx_t_7 += __pyx_v_coords.shape[0];
17622 if (__pyx_t_8 < 0) __pyx_t_8 += __pyx_v_node_coords.shape[0];
17624 if (__pyx_t_9 < 0) __pyx_t_9 += __pyx_v_coords.shape[0];
17634 if (__pyx_t_10 < 0) __pyx_t_10 += __pyx_v_node_coords.shape[0];
17636 if (__pyx_t_11 < 0) __pyx_t_11 += __pyx_v_coords.shape[0];
17638 if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_v_node_coords.shape[0];
17640 if (__pyx_t_13 < 0) __pyx_t_13 += __pyx_v_coords.shape[0];
17649 __pyx_v_min_dist = (((((*((
double *) ( (__pyx_v_node_coords.data + __pyx_t_2 * __pyx_v_node_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_3 * __pyx_v_coords.strides[0]) )))) * ((*((
double *) ( (__pyx_v_node_coords.data + __pyx_t_4 * __pyx_v_node_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_5 * __pyx_v_coords.strides[0]) ))))) + (((*((
double *) ( (__pyx_v_node_coords.data + __pyx_t_6 * __pyx_v_node_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_7 * __pyx_v_coords.strides[0]) )))) * ((*((
double *) ( (__pyx_v_node_coords.data + __pyx_t_8 * __pyx_v_node_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_9 * __pyx_v_coords.strides[0]) )))))) + (((*((
double *) ( (__pyx_v_node_coords.data + __pyx_t_10 * __pyx_v_node_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_11 * __pyx_v_coords.strides[0]) )))) * ((*((
double *) ( (__pyx_v_node_coords.data + __pyx_t_12 * __pyx_v_node_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_13 * __pyx_v_coords.strides[0]) ))))));
17668 __pyx_t_14 = ((__pyx_v_found_node == 0) != 0);
17669 if (!__pyx_t_14)
break;
17678 __pyx_v_nearest_node0 = __pyx_v_nearest_node;
17687 __pyx_t_15 = (__pyx_v_nearest_node0 + 1);
17688 if (__pyx_t_15 < 0) __pyx_t_15 += __pyx_v_nodeStarOffsets.shape[0];
17689 __pyx_t_16 = (*((
int *) ( (__pyx_v_nodeStarOffsets.data + __pyx_t_15 * __pyx_v_nodeStarOffsets.strides[0]) )));
17698 __pyx_t_17 = __pyx_v_nearest_node0;
17699 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_nodeStarOffsets.shape[0];
17708 __pyx_t_18 = __pyx_t_16;
17709 for (__pyx_t_19 = (*((
int *) ( (__pyx_v_nodeStarOffsets.data + __pyx_t_17 * __pyx_v_nodeStarOffsets.strides[0]) ))); __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
17718 __pyx_v_nOffset = __pyx_t_19;
17727 __pyx_t_20 = __pyx_v_nOffset;
17728 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_nodeStarArray.shape[0];
17729 __pyx_v_node = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_20 * __pyx_v_nodeStarArray.strides[0]) )));
17738 __pyx_t_1.data = __pyx_v_nodeArray.data;
17739 __pyx_t_1.memview = __pyx_v_nodeArray.memview;
17740 __PYX_INC_MEMVIEW(&__pyx_t_1, 0);
17742 Py_ssize_t __pyx_tmp_idx = __pyx_v_node;
17743 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
17744 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
17745 if (__pyx_tmp_idx < 0)
17746 __pyx_tmp_idx += __pyx_tmp_shape;
17747 if ((0)) __PYX_ERR(0, 1179, __pyx_L1_error)
17748 __pyx_t_1.data += __pyx_tmp_idx * __pyx_tmp_stride;
17751 __pyx_t_1.shape[0] = __pyx_v_nodeArray.shape[1];
17752 __pyx_t_1.strides[0] = __pyx_v_nodeArray.strides[1];
17753 __pyx_t_1.suboffsets[0] = -1;
17755 __PYX_XDEC_MEMVIEW(&__pyx_v_node_coords, 1);
17756 __pyx_v_node_coords = __pyx_t_1;
17757 __pyx_t_1.memview = NULL;
17758 __pyx_t_1.data = NULL;
17768 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_node_coords.shape[0];
17770 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_coords.shape[0];
17772 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_node_coords.shape[0];
17774 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_coords.shape[0];
17784 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_node_coords.shape[0];
17786 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_coords.shape[0];
17788 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_node_coords.shape[0];
17790 if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_v_coords.shape[0];
17800 if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_v_node_coords.shape[0];
17802 if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_v_coords.shape[0];
17804 if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_v_node_coords.shape[0];
17806 if (__pyx_t_32 < 0) __pyx_t_32 += __pyx_v_coords.shape[0];
17815 __pyx_v_dist = (((((*((
double *) ( (__pyx_v_node_coords.data + __pyx_t_21 * __pyx_v_node_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_22 * __pyx_v_coords.strides[0]) )))) * ((*((
double *) ( (__pyx_v_node_coords.data + __pyx_t_23 * __pyx_v_node_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_24 * __pyx_v_coords.strides[0]) ))))) + (((*((
double *) ( (__pyx_v_node_coords.data + __pyx_t_25 * __pyx_v_node_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_26 * __pyx_v_coords.strides[0]) )))) * ((*((
double *) ( (__pyx_v_node_coords.data + __pyx_t_27 * __pyx_v_node_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_28 * __pyx_v_coords.strides[0]) )))))) + (((*((
double *) ( (__pyx_v_node_coords.data + __pyx_t_29 * __pyx_v_node_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_30 * __pyx_v_coords.strides[0]) )))) * ((*((
double *) ( (__pyx_v_node_coords.data + __pyx_t_31 * __pyx_v_node_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_32 * __pyx_v_coords.strides[0]) ))))));
17824 __pyx_t_14 = ((__pyx_v_dist < __pyx_v_min_dist) != 0);
17834 __pyx_v_min_dist = __pyx_v_dist;
17843 __pyx_v_nearest_node = __pyx_v_node;
17862 __pyx_t_14 = ((__pyx_v_nearest_node0 == __pyx_v_nearest_node) != 0);
17872 __pyx_v_found_node = 1;
17890 __pyx_v_i = (__pyx_v_i + 1);
17900 __pyx_r = __pyx_v_nearest_node;
17913 __PYX_XDEC_MEMVIEW(&__pyx_t_1, 1);
17914 __Pyx_WriteUnraisable(
"mprans.MeshSmoothing.pyxGetLocalNearestNode", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
17917 __PYX_XDEC_MEMVIEW(&__pyx_v_node_coords, 1);
17918 __Pyx_RefNannyFinishContext();
17930 static int __pyx_f_6mprans_13MeshSmoothing_pyxGetLocalNearestElement(__Pyx_memviewslice __pyx_v_coords, __Pyx_memviewslice __pyx_v_elementBarycentersArray, __Pyx_memviewslice __pyx_v_elementNeighborsArray,
int __pyx_v_eN) {
17931 int __pyx_v_nearest_eN;
17932 int __pyx_v_nearest_eN0;
17933 double __pyx_v_dist;
17934 double __pyx_v_min_dist;
17935 double __pyx_v_eN_coords[3];
17936 bool __pyx_v_found_eN;
17938 int __pyx_v_nEneig;
17942 __Pyx_RefNannyDeclarations
17943 Py_ssize_t __pyx_t_1;
17944 Py_ssize_t __pyx_t_2;
17945 Py_ssize_t __pyx_t_3;
17946 Py_ssize_t __pyx_t_4;
17947 Py_ssize_t __pyx_t_5;
17948 Py_ssize_t __pyx_t_6;
17949 Py_ssize_t __pyx_t_7;
17950 Py_ssize_t __pyx_t_8;
17951 Py_ssize_t __pyx_t_9;
17952 Py_ssize_t __pyx_t_10;
17953 Py_ssize_t __pyx_t_11;
17954 Py_ssize_t __pyx_t_12;
17959 Py_ssize_t __pyx_t_17;
17960 Py_ssize_t __pyx_t_18;
17961 Py_ssize_t __pyx_t_19;
17962 Py_ssize_t __pyx_t_20;
17963 Py_ssize_t __pyx_t_21;
17964 Py_ssize_t __pyx_t_22;
17965 Py_ssize_t __pyx_t_23;
17966 Py_ssize_t __pyx_t_24;
17967 Py_ssize_t __pyx_t_25;
17968 Py_ssize_t __pyx_t_26;
17969 Py_ssize_t __pyx_t_27;
17970 Py_ssize_t __pyx_t_28;
17971 Py_ssize_t __pyx_t_29;
17972 Py_ssize_t __pyx_t_30;
17973 __Pyx_RefNannySetupContext(
"pyxGetLocalNearestElement", 0);
17982 __pyx_v_nearest_eN = __pyx_v_eN;
17991 __pyx_v_nearest_eN0 = __pyx_v_eN;
18000 __pyx_v_found_eN = 0;
18009 __pyx_t_1 = __pyx_v_eN;
18011 if (__pyx_t_1 < 0) __pyx_t_1 += __pyx_v_elementBarycentersArray.shape[0];
18012 if (__pyx_t_2 < 0) __pyx_t_2 += __pyx_v_elementBarycentersArray.shape[1];
18013 (__pyx_v_eN_coords[0]) = (*((
double *) ( (( (__pyx_v_elementBarycentersArray.data + __pyx_t_1 * __pyx_v_elementBarycentersArray.strides[0]) ) + __pyx_t_2 * __pyx_v_elementBarycentersArray.strides[1]) )));
18022 __pyx_t_3 = __pyx_v_eN;
18024 if (__pyx_t_3 < 0) __pyx_t_3 += __pyx_v_elementBarycentersArray.shape[0];
18025 if (__pyx_t_4 < 0) __pyx_t_4 += __pyx_v_elementBarycentersArray.shape[1];
18026 (__pyx_v_eN_coords[1]) = (*((
double *) ( (( (__pyx_v_elementBarycentersArray.data + __pyx_t_3 * __pyx_v_elementBarycentersArray.strides[0]) ) + __pyx_t_4 * __pyx_v_elementBarycentersArray.strides[1]) )));
18035 __pyx_t_5 = __pyx_v_eN;
18037 if (__pyx_t_5 < 0) __pyx_t_5 += __pyx_v_elementBarycentersArray.shape[0];
18038 if (__pyx_t_6 < 0) __pyx_t_6 += __pyx_v_elementBarycentersArray.shape[1];
18039 (__pyx_v_eN_coords[2]) = (*((
double *) ( (( (__pyx_v_elementBarycentersArray.data + __pyx_t_5 * __pyx_v_elementBarycentersArray.strides[0]) ) + __pyx_t_6 * __pyx_v_elementBarycentersArray.strides[1]) )));
18048 __pyx_v_nEneig = (__pyx_v_elementNeighborsArray.shape[1]);
18058 if (__pyx_t_7 < 0) __pyx_t_7 += __pyx_v_coords.shape[0];
18060 if (__pyx_t_8 < 0) __pyx_t_8 += __pyx_v_coords.shape[0];
18070 if (__pyx_t_9 < 0) __pyx_t_9 += __pyx_v_coords.shape[0];
18072 if (__pyx_t_10 < 0) __pyx_t_10 += __pyx_v_coords.shape[0];
18082 if (__pyx_t_11 < 0) __pyx_t_11 += __pyx_v_coords.shape[0];
18084 if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_v_coords.shape[0];
18093 __pyx_v_min_dist = (((((__pyx_v_eN_coords[0]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_7 * __pyx_v_coords.strides[0]) )))) * ((__pyx_v_eN_coords[0]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_8 * __pyx_v_coords.strides[0]) ))))) + (((__pyx_v_eN_coords[1]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_9 * __pyx_v_coords.strides[0]) )))) * ((__pyx_v_eN_coords[1]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_10 * __pyx_v_coords.strides[0]) )))))) + (((__pyx_v_eN_coords[2]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_11 * __pyx_v_coords.strides[0]) )))) * ((__pyx_v_eN_coords[2]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_12 * __pyx_v_coords.strides[0]) ))))));
18112 __pyx_t_13 = ((__pyx_v_found_eN == 0) != 0);
18113 if (!__pyx_t_13)
break;
18122 __pyx_v_nearest_eN0 = __pyx_v_nearest_eN;
18131 __pyx_t_14 = __pyx_v_nEneig;
18132 __pyx_t_15 = __pyx_t_14;
18133 for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
18134 __pyx_v_iEn = __pyx_t_16;
18143 __pyx_t_17 = __pyx_v_nearest_eN0;
18144 __pyx_t_18 = __pyx_v_iEn;
18145 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_elementNeighborsArray.shape[0];
18146 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_elementNeighborsArray.shape[1];
18147 __pyx_v_eN_ = (*((
int *) ( (( (__pyx_v_elementNeighborsArray.data + __pyx_t_17 * __pyx_v_elementNeighborsArray.strides[0]) ) + __pyx_t_18 * __pyx_v_elementNeighborsArray.strides[1]) )));
18156 __pyx_t_19 = __pyx_v_eN_;
18158 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_elementBarycentersArray.shape[0];
18159 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_elementBarycentersArray.shape[1];
18160 (__pyx_v_eN_coords[0]) = (*((
double *) ( (( (__pyx_v_elementBarycentersArray.data + __pyx_t_19 * __pyx_v_elementBarycentersArray.strides[0]) ) + __pyx_t_20 * __pyx_v_elementBarycentersArray.strides[1]) )));
18169 __pyx_t_21 = __pyx_v_eN_;
18171 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_elementBarycentersArray.shape[0];
18172 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_elementBarycentersArray.shape[1];
18173 (__pyx_v_eN_coords[1]) = (*((
double *) ( (( (__pyx_v_elementBarycentersArray.data + __pyx_t_21 * __pyx_v_elementBarycentersArray.strides[0]) ) + __pyx_t_22 * __pyx_v_elementBarycentersArray.strides[1]) )));
18182 __pyx_t_23 = __pyx_v_eN_;
18184 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_elementBarycentersArray.shape[0];
18185 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_elementBarycentersArray.shape[1];
18186 (__pyx_v_eN_coords[2]) = (*((
double *) ( (( (__pyx_v_elementBarycentersArray.data + __pyx_t_23 * __pyx_v_elementBarycentersArray.strides[0]) ) + __pyx_t_24 * __pyx_v_elementBarycentersArray.strides[1]) )));
18196 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_coords.shape[0];
18198 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_coords.shape[0];
18208 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_coords.shape[0];
18210 if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_v_coords.shape[0];
18220 if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_v_coords.shape[0];
18222 if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_v_coords.shape[0];
18231 __pyx_v_dist = (((((__pyx_v_eN_coords[0]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_25 * __pyx_v_coords.strides[0]) )))) * ((__pyx_v_eN_coords[0]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_26 * __pyx_v_coords.strides[0]) ))))) + (((__pyx_v_eN_coords[1]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_27 * __pyx_v_coords.strides[0]) )))) * ((__pyx_v_eN_coords[1]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_28 * __pyx_v_coords.strides[0]) )))))) + (((__pyx_v_eN_coords[2]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_29 * __pyx_v_coords.strides[0]) )))) * ((__pyx_v_eN_coords[2]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_30 * __pyx_v_coords.strides[0]) ))))));
18240 __pyx_t_13 = ((__pyx_v_dist < __pyx_v_min_dist) != 0);
18250 __pyx_v_min_dist = __pyx_v_dist;
18259 __pyx_v_nearest_eN = __pyx_v_eN_;
18278 __pyx_t_13 = ((__pyx_v_nearest_eN0 == __pyx_v_nearest_eN) != 0);
18288 __pyx_v_found_eN = 1;
18306 __pyx_v_i = (__pyx_v_i + 1);
18316 __pyx_r = __pyx_v_nearest_eN;
18329 __Pyx_RefNannyFinishContext();
18341 static __Pyx_memviewslice __pyx_f_6mprans_13MeshSmoothing_pyxGetLocalNearestElementIntersection(__Pyx_memviewslice __pyx_v_coords, __Pyx_memviewslice __pyx_v_starting_coords, __Pyx_memviewslice __pyx_v_elementBoundaryNormalsArray, __Pyx_memviewslice __pyx_v_elementBoundariesArray, __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray, __Pyx_memviewslice __pyx_v_elementBoundaryElementsArray, CYTHON_UNUSED __Pyx_memviewslice __pyx_v_exteriorElementBoundariesBoolArray,
int __pyx_v_eN) {
18342 int __pyx_v_result[2];
18343 double __pyx_v_eN_coords[3];
18344 double __pyx_v_min_dist;
18345 double __pyx_v_direction[3];
18348 int __pyx_v_nearest_eN;
18349 int __pyx_v_nearest_eN0;
18350 bool __pyx_v_found_eN;
18352 __Pyx_memviewslice __pyx_v_bound_bar = { 0, 0, { 0 }, { 0 }, { 0 } };
18353 double __pyx_v_alpha;
18355 int __pyx_v_b_i_last;
18356 __Pyx_memviewslice __pyx_v_normal = { 0, 0, { 0 }, { 0 }, { 0 } };
18357 double __pyx_v_dot;
18358 double __pyx_v_dot2;
18363 double __pyx_v_alpha_min;
18364 __Pyx_memviewslice __pyx_r = { 0, 0, { 0 }, { 0 }, { 0 } };
18365 __Pyx_RefNannyDeclarations
18366 Py_ssize_t __pyx_t_1;
18367 Py_ssize_t __pyx_t_2;
18368 Py_ssize_t __pyx_t_3;
18369 Py_ssize_t __pyx_t_4;
18370 Py_ssize_t __pyx_t_5;
18371 Py_ssize_t __pyx_t_6;
18372 Py_ssize_t __pyx_t_7;
18373 Py_ssize_t __pyx_t_8;
18374 Py_ssize_t __pyx_t_9;
18375 Py_ssize_t __pyx_t_10;
18376 Py_ssize_t __pyx_t_11;
18377 Py_ssize_t __pyx_t_12;
18383 Py_ssize_t __pyx_t_18;
18384 Py_ssize_t __pyx_t_19;
18385 __Pyx_memviewslice __pyx_t_20 = { 0, 0, { 0 }, { 0 }, { 0 } };
18386 Py_ssize_t __pyx_t_21;
18387 Py_ssize_t __pyx_t_22;
18388 Py_ssize_t __pyx_t_23;
18389 Py_ssize_t __pyx_t_24;
18390 Py_ssize_t __pyx_t_25;
18391 Py_ssize_t __pyx_t_26;
18392 Py_ssize_t __pyx_t_27;
18393 Py_ssize_t __pyx_t_28;
18394 Py_ssize_t __pyx_t_29;
18396 Py_ssize_t __pyx_t_31;
18397 Py_ssize_t __pyx_t_32;
18399 PyObject *__pyx_t_34 = NULL;
18400 PyObject *__pyx_t_35 = NULL;
18401 PyObject *__pyx_t_36 = NULL;
18402 Py_ssize_t __pyx_t_37;
18403 Py_ssize_t __pyx_t_38;
18404 Py_ssize_t __pyx_t_39;
18405 struct __pyx_array_obj *__pyx_t_40 = NULL;
18406 __Pyx_memviewslice __pyx_t_41 = { 0, 0, { 0 }, { 0 }, { 0 } };
18407 __Pyx_RefNannySetupContext(
"pyxGetLocalNearestElementIntersection", 0);
18416 (__pyx_v_result[0]) = -1;
18425 (__pyx_v_result[1]) = -1;
18435 if (__pyx_t_1 < 0) __pyx_t_1 += __pyx_v_starting_coords.shape[0];
18436 (__pyx_v_eN_coords[0]) = (*((
double *) ( (__pyx_v_starting_coords.data + __pyx_t_1 * __pyx_v_starting_coords.strides[0]) )));
18446 if (__pyx_t_2 < 0) __pyx_t_2 += __pyx_v_starting_coords.shape[0];
18447 (__pyx_v_eN_coords[1]) = (*((
double *) ( (__pyx_v_starting_coords.data + __pyx_t_2 * __pyx_v_starting_coords.strides[0]) )));
18457 if (__pyx_t_3 < 0) __pyx_t_3 += __pyx_v_starting_coords.shape[0];
18458 (__pyx_v_eN_coords[2]) = (*((
double *) ( (__pyx_v_starting_coords.data + __pyx_t_3 * __pyx_v_starting_coords.strides[0]) )));
18468 if (__pyx_t_4 < 0) __pyx_t_4 += __pyx_v_coords.shape[0];
18470 if (__pyx_t_5 < 0) __pyx_t_5 += __pyx_v_coords.shape[0];
18480 if (__pyx_t_6 < 0) __pyx_t_6 += __pyx_v_coords.shape[0];
18482 if (__pyx_t_7 < 0) __pyx_t_7 += __pyx_v_coords.shape[0];
18492 if (__pyx_t_8 < 0) __pyx_t_8 += __pyx_v_coords.shape[0];
18494 if (__pyx_t_9 < 0) __pyx_t_9 += __pyx_v_coords.shape[0];
18503 __pyx_v_min_dist = sqrt((((((__pyx_v_eN_coords[0]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_4 * __pyx_v_coords.strides[0]) )))) * ((__pyx_v_eN_coords[0]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_5 * __pyx_v_coords.strides[0]) ))))) + (((__pyx_v_eN_coords[1]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_6 * __pyx_v_coords.strides[0]) )))) * ((__pyx_v_eN_coords[1]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_7 * __pyx_v_coords.strides[0]) )))))) + (((__pyx_v_eN_coords[2]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_8 * __pyx_v_coords.strides[0]) )))) * ((__pyx_v_eN_coords[2]) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_9 * __pyx_v_coords.strides[0]) )))))));
18513 if (__pyx_t_10 < 0) __pyx_t_10 += __pyx_v_coords.shape[0];
18514 (__pyx_v_direction[0]) = (((*((
double *) ( (__pyx_v_coords.data + __pyx_t_10 * __pyx_v_coords.strides[0]) ))) - (__pyx_v_eN_coords[0])) / __pyx_v_min_dist);
18524 if (__pyx_t_11 < 0) __pyx_t_11 += __pyx_v_coords.shape[0];
18525 (__pyx_v_direction[1]) = (((*((
double *) ( (__pyx_v_coords.data + __pyx_t_11 * __pyx_v_coords.strides[0]) ))) - (__pyx_v_eN_coords[1])) / __pyx_v_min_dist);
18535 if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_v_coords.shape[0];
18536 (__pyx_v_direction[2]) = (((*((
double *) ( (__pyx_v_coords.data + __pyx_t_12 * __pyx_v_coords.strides[0]) ))) - (__pyx_v_eN_coords[2])) / __pyx_v_min_dist);
18545 __pyx_v_maxit = (5 * (__pyx_v_elementBoundariesArray.shape[0]));
18554 __pyx_v_nEbn = (__pyx_v_elementBoundariesArray.shape[1]);
18563 __pyx_v_nearest_eN = __pyx_v_eN;
18572 __pyx_v_nearest_eN0 = __pyx_v_eN;
18581 __pyx_v_found_eN = 0;
18599 __pyx_v_b_i_last = -1;
18618 __pyx_t_14 = ((__pyx_v_found_eN == 0) != 0);
18621 __pyx_t_13 = __pyx_t_14;
18622 goto __pyx_L5_bool_binop_done;
18624 __pyx_t_14 = ((__pyx_v_it < __pyx_v_maxit) != 0);
18625 __pyx_t_13 = __pyx_t_14;
18626 __pyx_L5_bool_binop_done:;
18627 if (!__pyx_t_13)
break;
18636 __pyx_v_nearest_eN0 = __pyx_v_nearest_eN;
18645 __pyx_v_alpha_min = 1e12;
18654 __pyx_t_15 = __pyx_v_nEbn;
18655 __pyx_t_16 = __pyx_t_15;
18656 for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
18657 __pyx_v_j = __pyx_t_17;
18666 __pyx_t_18 = __pyx_v_nearest_eN0;
18667 __pyx_t_19 = __pyx_v_j;
18668 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_elementBoundariesArray.shape[0];
18669 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_elementBoundariesArray.shape[1];
18670 __pyx_v_b_i = (*((
int *) ( (( (__pyx_v_elementBoundariesArray.data + __pyx_t_18 * __pyx_v_elementBoundariesArray.strides[0]) ) + __pyx_t_19 * __pyx_v_elementBoundariesArray.strides[1]) )));
18679 __pyx_t_20.data = __pyx_v_elementBoundaryNormalsArray.data;
18680 __pyx_t_20.memview = __pyx_v_elementBoundaryNormalsArray.memview;
18681 __PYX_INC_MEMVIEW(&__pyx_t_20, 0);
18683 Py_ssize_t __pyx_tmp_idx = __pyx_v_nearest_eN0;
18684 Py_ssize_t __pyx_tmp_shape = __pyx_v_elementBoundaryNormalsArray.shape[0];
18685 Py_ssize_t __pyx_tmp_stride = __pyx_v_elementBoundaryNormalsArray.strides[0];
18686 if (__pyx_tmp_idx < 0)
18687 __pyx_tmp_idx += __pyx_tmp_shape;
18688 if ((0)) __PYX_ERR(0, 1282, __pyx_L1_error)
18689 __pyx_t_20.data += __pyx_tmp_idx * __pyx_tmp_stride;
18693 Py_ssize_t __pyx_tmp_idx = __pyx_v_j;
18694 Py_ssize_t __pyx_tmp_shape = __pyx_v_elementBoundaryNormalsArray.shape[1];
18695 Py_ssize_t __pyx_tmp_stride = __pyx_v_elementBoundaryNormalsArray.strides[1];
18696 if (__pyx_tmp_idx < 0)
18697 __pyx_tmp_idx += __pyx_tmp_shape;
18698 if ((0)) __PYX_ERR(0, 1282, __pyx_L1_error)
18699 __pyx_t_20.data += __pyx_tmp_idx * __pyx_tmp_stride;
18702 __pyx_t_20.shape[0] = __pyx_v_elementBoundaryNormalsArray.shape[2];
18703 __pyx_t_20.strides[0] = __pyx_v_elementBoundaryNormalsArray.strides[2];
18704 __pyx_t_20.suboffsets[0] = -1;
18706 __PYX_XDEC_MEMVIEW(&__pyx_v_normal, 1);
18707 __pyx_v_normal = __pyx_t_20;
18708 __pyx_t_20.memview = NULL;
18709 __pyx_t_20.data = NULL;
18718 __pyx_t_20.data = __pyx_v_elementBoundaryBarycentersArray.data;
18719 __pyx_t_20.memview = __pyx_v_elementBoundaryBarycentersArray.memview;
18720 __PYX_INC_MEMVIEW(&__pyx_t_20, 0);
18722 Py_ssize_t __pyx_tmp_idx = __pyx_v_b_i;
18723 Py_ssize_t __pyx_tmp_shape = __pyx_v_elementBoundaryBarycentersArray.shape[0];
18724 Py_ssize_t __pyx_tmp_stride = __pyx_v_elementBoundaryBarycentersArray.strides[0];
18725 if (__pyx_tmp_idx < 0)
18726 __pyx_tmp_idx += __pyx_tmp_shape;
18727 if ((0)) __PYX_ERR(0, 1283, __pyx_L1_error)
18728 __pyx_t_20.data += __pyx_tmp_idx * __pyx_tmp_stride;
18731 __pyx_t_20.shape[0] = __pyx_v_elementBoundaryBarycentersArray.shape[1];
18732 __pyx_t_20.strides[0] = __pyx_v_elementBoundaryBarycentersArray.strides[1];
18733 __pyx_t_20.suboffsets[0] = -1;
18735 __PYX_XDEC_MEMVIEW(&__pyx_v_bound_bar, 1);
18736 __pyx_v_bound_bar = __pyx_t_20;
18737 __pyx_t_20.memview = NULL;
18738 __pyx_t_20.data = NULL;
18748 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_normal.shape[0];
18750 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_normal.shape[0];
18752 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_normal.shape[0];
18753 __pyx_v_dot = ((((*((
double *) ( (__pyx_v_normal.data + __pyx_t_21 * __pyx_v_normal.strides[0]) ))) * (__pyx_v_direction[0])) + ((*((
double *) ( (__pyx_v_normal.data + __pyx_t_22 * __pyx_v_normal.strides[0]) ))) * (__pyx_v_direction[1]))) + ((*((
double *) ( (__pyx_v_normal.data + __pyx_t_23 * __pyx_v_normal.strides[0]) ))) * (__pyx_v_direction[2])));
18762 __pyx_t_13 = ((__pyx_v_dot > 0.) != 0);
18773 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_bound_bar.shape[0];
18775 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_normal.shape[0];
18777 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_bound_bar.shape[0];
18779 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_normal.shape[0];
18781 if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_v_bound_bar.shape[0];
18783 if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_v_normal.shape[0];
18784 __pyx_v_dot2 = (((((*((
double *) ( (__pyx_v_bound_bar.data + __pyx_t_24 * __pyx_v_bound_bar.strides[0]) ))) - (__pyx_v_eN_coords[0])) * (*((
double *) ( (__pyx_v_normal.data + __pyx_t_25 * __pyx_v_normal.strides[0]) )))) + (((*((
double *) ( (__pyx_v_bound_bar.data + __pyx_t_26 * __pyx_v_bound_bar.strides[0]) ))) - (__pyx_v_eN_coords[1])) * (*((
double *) ( (__pyx_v_normal.data + __pyx_t_27 * __pyx_v_normal.strides[0]) ))))) + (((*((
double *) ( (__pyx_v_bound_bar.data + __pyx_t_28 * __pyx_v_bound_bar.strides[0]) ))) - (__pyx_v_eN_coords[2])) * (*((
double *) ( (__pyx_v_normal.data + __pyx_t_29 * __pyx_v_normal.strides[0]) )))));
18793 __pyx_t_13 = ((__pyx_v_dot2 >= 0.) != 0);
18803 __pyx_v_alpha = (__pyx_v_dot2 / __pyx_v_dot);
18812 __pyx_t_13 = (0. <= __pyx_v_alpha);
18814 __pyx_t_13 = (__pyx_v_alpha < __pyx_v_alpha_min);
18816 __pyx_t_14 = (__pyx_t_13 != 0);
18826 __pyx_v_alpha_min = __pyx_v_alpha;
18835 for (__pyx_t_30 = 0; __pyx_t_30 < 2; __pyx_t_30+=1) {
18836 __pyx_v_k = __pyx_t_30;
18845 __pyx_t_31 = __pyx_v_b_i;
18846 __pyx_t_32 = __pyx_v_k;
18847 if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_v_elementBoundaryElementsArray.shape[0];
18848 if (__pyx_t_32 < 0) __pyx_t_32 += __pyx_v_elementBoundaryElementsArray.shape[1];
18849 __pyx_v_eN_ = (*((
int *) ( (( (__pyx_v_elementBoundaryElementsArray.data + __pyx_t_31 * __pyx_v_elementBoundaryElementsArray.strides[0]) ) + __pyx_t_32 * __pyx_v_elementBoundaryElementsArray.strides[1]) )));
18858 __pyx_t_14 = ((__pyx_v_eN_ != __pyx_v_nearest_eN0) != 0);
18868 __pyx_v_nearest_eN = __pyx_v_eN_;
18887 __pyx_v_b_i_last = __pyx_v_b_i;
18924 __pyx_t_14 = ((__pyx_v_nearest_eN != __pyx_v_nearest_eN0) != 0);
18934 __pyx_t_14 = (((__pyx_v_min_dist - __pyx_v_alpha_min) >= 0.0) != 0);
18945 (__pyx_v_eN_coords[__pyx_t_33]) = ((__pyx_v_eN_coords[__pyx_t_33]) + (__pyx_v_alpha_min * (__pyx_v_direction[0])));
18955 (__pyx_v_eN_coords[__pyx_t_33]) = ((__pyx_v_eN_coords[__pyx_t_33]) + (__pyx_v_alpha_min * (__pyx_v_direction[1])));
18965 (__pyx_v_eN_coords[__pyx_t_33]) = ((__pyx_v_eN_coords[__pyx_t_33]) + (__pyx_v_alpha_min * (__pyx_v_direction[2])));
18974 __pyx_v_min_dist = (__pyx_v_min_dist - __pyx_v_alpha_min);
18994 __pyx_v_nearest_eN = __pyx_v_nearest_eN0;
19014 __pyx_t_13 = ((__pyx_v_nearest_eN0 == __pyx_v_nearest_eN) != 0);
19017 __pyx_t_14 = __pyx_t_13;
19018 goto __pyx_L18_bool_binop_done;
19020 __pyx_t_13 = ((__pyx_v_nearest_eN == -1
L) != 0);
19021 __pyx_t_14 = __pyx_t_13;
19022 __pyx_L18_bool_binop_done:;
19032 __pyx_v_found_eN = 1;
19050 __pyx_v_i = (__pyx_v_i + 1);
19059 __pyx_v_it = (__pyx_v_it + 1);
19069 __pyx_t_14 = ((__pyx_v_it >= __pyx_v_maxit) != 0);
19079 #ifndef CYTHON_WITHOUT_ASSERTIONS 19080 if (unlikely(!Py_OptimizeFlag)) {
19081 if (unlikely(!0)) {
19082 __pyx_t_34 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_could_not_find_element_element_e, __pyx_n_s_format);
if (unlikely(!__pyx_t_34)) __PYX_ERR(0, 1310, __pyx_L1_error)
19083 __Pyx_GOTREF(__pyx_t_34);
19084 __pyx_t_35 = __Pyx_PyDict_NewPresized(9);
if (unlikely(!__pyx_t_35)) __PYX_ERR(0, 1310, __pyx_L1_error)
19085 __Pyx_GOTREF(__pyx_t_35);
19086 __pyx_t_36 = __Pyx_PyInt_From_int(__pyx_v_eN);
if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 1310, __pyx_L1_error)
19087 __Pyx_GOTREF(__pyx_t_36);
19088 if (PyDict_SetItem(__pyx_t_35, __pyx_n_s_eN, __pyx_t_36) < 0) __PYX_ERR(0, 1310, __pyx_L1_error)
19089 __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
19099 if (__pyx_t_37 < 0) __pyx_t_37 += __pyx_v_coords.shape[0];
19100 __pyx_t_36 = PyFloat_FromDouble((*((
double *) ( (__pyx_v_coords.data + __pyx_t_37 * __pyx_v_coords.strides[0]) ))));
if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 1311, __pyx_L1_error)
19101 __Pyx_GOTREF(__pyx_t_36);
19102 if (PyDict_SetItem(__pyx_t_35, __pyx_n_s_x, __pyx_t_36) < 0) __PYX_ERR(0, 1310, __pyx_L1_error)
19103 __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
19113 if (__pyx_t_38 < 0) __pyx_t_38 += __pyx_v_coords.shape[0];
19114 __pyx_t_36 = PyFloat_FromDouble((*((
double *) ( (__pyx_v_coords.data + __pyx_t_38 * __pyx_v_coords.strides[0]) ))));
if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 1312, __pyx_L1_error)
19115 __Pyx_GOTREF(__pyx_t_36);
19116 if (PyDict_SetItem(__pyx_t_35, __pyx_n_s_y, __pyx_t_36) < 0) __PYX_ERR(0, 1310, __pyx_L1_error)
19117 __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
19127 if (__pyx_t_39 < 0) __pyx_t_39 += __pyx_v_coords.shape[0];
19128 __pyx_t_36 = PyFloat_FromDouble((*((
double *) ( (__pyx_v_coords.data + __pyx_t_39 * __pyx_v_coords.strides[0]) ))));
if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 1313, __pyx_L1_error)
19129 __Pyx_GOTREF(__pyx_t_36);
19130 if (PyDict_SetItem(__pyx_t_35, __pyx_n_s_z, __pyx_t_36) < 0) __PYX_ERR(0, 1310, __pyx_L1_error)
19131 __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
19140 __pyx_t_36 = __Pyx_PyInt_From_int(__pyx_v_nearest_eN);
if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 1314, __pyx_L1_error)
19141 __Pyx_GOTREF(__pyx_t_36);
19142 if (PyDict_SetItem(__pyx_t_35, __pyx_n_s_nearest_eN, __pyx_t_36) < 0) __PYX_ERR(0, 1310, __pyx_L1_error)
19143 __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
19152 __pyx_t_36 = PyFloat_FromDouble((__pyx_v_eN_coords[0]));
if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 1315, __pyx_L1_error)
19153 __Pyx_GOTREF(__pyx_t_36);
19154 if (PyDict_SetItem(__pyx_t_35, __pyx_n_s_x2, __pyx_t_36) < 0) __PYX_ERR(0, 1310, __pyx_L1_error)
19155 __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
19164 __pyx_t_36 = PyFloat_FromDouble((__pyx_v_eN_coords[1]));
if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 1316, __pyx_L1_error)
19165 __Pyx_GOTREF(__pyx_t_36);
19166 if (PyDict_SetItem(__pyx_t_35, __pyx_n_s_y2, __pyx_t_36) < 0) __PYX_ERR(0, 1310, __pyx_L1_error)
19167 __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
19176 __pyx_t_36 = PyFloat_FromDouble((__pyx_v_eN_coords[2]));
if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 1317, __pyx_L1_error)
19177 __Pyx_GOTREF(__pyx_t_36);
19178 if (PyDict_SetItem(__pyx_t_35, __pyx_n_s_z2, __pyx_t_36) < 0) __PYX_ERR(0, 1310, __pyx_L1_error)
19179 __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
19188 __pyx_t_36 = __Pyx_PyInt_From_int(__pyx_v_maxit);
if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 1318, __pyx_L1_error)
19189 __Pyx_GOTREF(__pyx_t_36);
19190 if (PyDict_SetItem(__pyx_t_35, __pyx_n_s_maxit, __pyx_t_36) < 0) __PYX_ERR(0, 1310, __pyx_L1_error)
19191 __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
19200 __pyx_t_36 = __Pyx_PyObject_Call(__pyx_t_34, __pyx_empty_tuple, __pyx_t_35);
if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 1310, __pyx_L1_error)
19201 __Pyx_GOTREF(__pyx_t_36);
19202 __Pyx_DECREF(__pyx_t_34); __pyx_t_34 = 0;
19203 __Pyx_DECREF(__pyx_t_35); __pyx_t_35 = 0;
19204 __pyx_t_35 = PyTuple_Pack(1, __pyx_t_36);
if (unlikely(!__pyx_t_35)) __PYX_ERR(0, 1310, __pyx_L1_error)
19205 __Pyx_GOTREF(__pyx_t_35);
19206 __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
19207 PyErr_SetObject(PyExc_AssertionError, __pyx_t_35);
19208 __Pyx_DECREF(__pyx_t_35); __pyx_t_35 = 0;
19209 __PYX_ERR(0, 1310, __pyx_L1_error)
19230 (__pyx_v_result[0]) = __pyx_v_nearest_eN;
19239 (__pyx_v_result[1]) = __pyx_v_b_i_last;
19248 __pyx_t_36 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_int);
19249 __pyx_t_35 = Py_BuildValue((
char*)
"(" __PYX_BUILD_PY_SSIZE_T
")", ((Py_ssize_t)2));
19250 if (unlikely(!__pyx_t_36 || !__pyx_t_35 || !PyBytes_AsString(__pyx_t_36))) __PYX_ERR(0, 1321, __pyx_L1_error)
19251 __Pyx_GOTREF(__pyx_t_36);
19252 __Pyx_GOTREF(__pyx_t_35);
19253 __pyx_t_40 = __pyx_array_new(__pyx_t_35,
sizeof(
int), PyBytes_AS_STRING(__pyx_t_36), (
char *)
"fortran", (
char *) __pyx_v_result);
19254 if (unlikely(!__pyx_t_40)) __PYX_ERR(0, 1321, __pyx_L1_error)
19255 __Pyx_GOTREF(__pyx_t_40);
19256 __Pyx_DECREF(__pyx_t_35); __pyx_t_35 = 0;
19257 __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
19258 __pyx_t_41 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(((PyObject *)__pyx_t_40), PyBUF_WRITABLE);
if (unlikely(!__pyx_t_41.memview)) __PYX_ERR(0, 1321, __pyx_L1_error)
19259 __Pyx_DECREF(((PyObject *)__pyx_t_40)); __pyx_t_40 = 0;
19260 __pyx_r = __pyx_t_41;
19261 __pyx_t_41.memview = NULL;
19262 __pyx_t_41.data = NULL;
19275 __PYX_XDEC_MEMVIEW(&__pyx_t_20, 1);
19276 __Pyx_XDECREF(__pyx_t_34);
19277 __Pyx_XDECREF(__pyx_t_35);
19278 __Pyx_XDECREF(__pyx_t_36);
19279 __Pyx_XDECREF(((PyObject *)__pyx_t_40));
19280 __PYX_XDEC_MEMVIEW(&__pyx_t_41, 1);
19281 __pyx_r.data = NULL;
19282 __pyx_r.memview = NULL;
19283 __Pyx_AddTraceback(
"mprans.MeshSmoothing.pyxGetLocalNearestElementIntersection", __pyx_clineno, __pyx_lineno, __pyx_filename);
19286 if (unlikely(!__pyx_r.memview)) {
19287 PyErr_SetString(PyExc_TypeError,
"Memoryview return value is not initialized");
19290 __PYX_XDEC_MEMVIEW(&__pyx_v_bound_bar, 1);
19291 __PYX_XDEC_MEMVIEW(&__pyx_v_normal, 1);
19292 __Pyx_RefNannyFinishContext();
19304 static int __pyx_f_6mprans_13MeshSmoothing_pyxGetLocalNearestElementAroundNode(__Pyx_memviewslice __pyx_v_coords, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_elementBarycentersArray,
int __pyx_v_node) {
19305 double __pyx_v_dist;
19306 double __pyx_v_min_dist;
19307 __Pyx_memviewslice __pyx_v_eN_coords = { 0, 0, { 0 }, { 0 }, { 0 } };
19313 int __pyx_v_nearest_eN;
19315 __Pyx_RefNannyDeclarations
19316 Py_ssize_t __pyx_t_1;
19317 Py_ssize_t __pyx_t_2;
19321 Py_ssize_t __pyx_t_6;
19322 __Pyx_memviewslice __pyx_t_7 = { 0, 0, { 0 }, { 0 }, { 0 } };
19323 Py_ssize_t __pyx_t_8;
19324 Py_ssize_t __pyx_t_9;
19325 Py_ssize_t __pyx_t_10;
19326 Py_ssize_t __pyx_t_11;
19327 Py_ssize_t __pyx_t_12;
19328 Py_ssize_t __pyx_t_13;
19329 Py_ssize_t __pyx_t_14;
19330 Py_ssize_t __pyx_t_15;
19331 Py_ssize_t __pyx_t_16;
19332 Py_ssize_t __pyx_t_17;
19333 Py_ssize_t __pyx_t_18;
19334 Py_ssize_t __pyx_t_19;
19337 __Pyx_RefNannySetupContext(
"pyxGetLocalNearestElementAroundNode", 0);
19355 __pyx_t_1 = __pyx_v_node;
19356 if (__pyx_t_1 < 0) __pyx_t_1 += __pyx_v_nodeElementOffsets.shape[0];
19357 __pyx_v_rmin = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_1 * __pyx_v_nodeElementOffsets.strides[0]) )));
19366 __pyx_t_2 = (__pyx_v_node + 1);
19367 if (__pyx_t_2 < 0) __pyx_t_2 += __pyx_v_nodeElementOffsets.shape[0];
19368 __pyx_v_rmax = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_2 * __pyx_v_nodeElementOffsets.strides[0]) )));
19377 __pyx_t_3 = __pyx_v_rmax;
19378 __pyx_t_4 = __pyx_t_3;
19379 for (__pyx_t_5 = __pyx_v_rmin; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
19380 __pyx_v_iEn = __pyx_t_5;
19389 __pyx_t_6 = __pyx_v_iEn;
19390 if (__pyx_t_6 < 0) __pyx_t_6 += __pyx_v_nodeElementsArray.shape[0];
19391 __pyx_v_eN = (*((
int *) ( (__pyx_v_nodeElementsArray.data + __pyx_t_6 * __pyx_v_nodeElementsArray.strides[0]) )));
19400 __pyx_t_7.data = __pyx_v_elementBarycentersArray.data;
19401 __pyx_t_7.memview = __pyx_v_elementBarycentersArray.memview;
19402 __PYX_INC_MEMVIEW(&__pyx_t_7, 0);
19404 Py_ssize_t __pyx_tmp_idx = __pyx_v_eN;
19405 Py_ssize_t __pyx_tmp_shape = __pyx_v_elementBarycentersArray.shape[0];
19406 Py_ssize_t __pyx_tmp_stride = __pyx_v_elementBarycentersArray.strides[0];
19407 if (__pyx_tmp_idx < 0)
19408 __pyx_tmp_idx += __pyx_tmp_shape;
19409 if ((0)) __PYX_ERR(0, 1338, __pyx_L1_error)
19410 __pyx_t_7.data += __pyx_tmp_idx * __pyx_tmp_stride;
19413 __pyx_t_7.shape[0] = __pyx_v_elementBarycentersArray.shape[1];
19414 __pyx_t_7.strides[0] = __pyx_v_elementBarycentersArray.strides[1];
19415 __pyx_t_7.suboffsets[0] = -1;
19417 __PYX_XDEC_MEMVIEW(&__pyx_v_eN_coords, 1);
19418 __pyx_v_eN_coords = __pyx_t_7;
19419 __pyx_t_7.memview = NULL;
19420 __pyx_t_7.data = NULL;
19430 if (__pyx_t_8 < 0) __pyx_t_8 += __pyx_v_eN_coords.shape[0];
19432 if (__pyx_t_9 < 0) __pyx_t_9 += __pyx_v_coords.shape[0];
19434 if (__pyx_t_10 < 0) __pyx_t_10 += __pyx_v_eN_coords.shape[0];
19436 if (__pyx_t_11 < 0) __pyx_t_11 += __pyx_v_coords.shape[0];
19446 if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_v_eN_coords.shape[0];
19448 if (__pyx_t_13 < 0) __pyx_t_13 += __pyx_v_coords.shape[0];
19450 if (__pyx_t_14 < 0) __pyx_t_14 += __pyx_v_eN_coords.shape[0];
19452 if (__pyx_t_15 < 0) __pyx_t_15 += __pyx_v_coords.shape[0];
19462 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_eN_coords.shape[0];
19464 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_coords.shape[0];
19466 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_eN_coords.shape[0];
19468 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_coords.shape[0];
19477 __pyx_v_dist = (((((*((
double *) ( (__pyx_v_eN_coords.data + __pyx_t_8 * __pyx_v_eN_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_9 * __pyx_v_coords.strides[0]) )))) * ((*((
double *) ( (__pyx_v_eN_coords.data + __pyx_t_10 * __pyx_v_eN_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_11 * __pyx_v_coords.strides[0]) ))))) + (((*((
double *) ( (__pyx_v_eN_coords.data + __pyx_t_12 * __pyx_v_eN_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_13 * __pyx_v_coords.strides[0]) )))) * ((*((
double *) ( (__pyx_v_eN_coords.data + __pyx_t_14 * __pyx_v_eN_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_15 * __pyx_v_coords.strides[0]) )))))) + (((*((
double *) ( (__pyx_v_eN_coords.data + __pyx_t_16 * __pyx_v_eN_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_17 * __pyx_v_coords.strides[0]) )))) * ((*((
double *) ( (__pyx_v_eN_coords.data + __pyx_t_18 * __pyx_v_eN_coords.strides[0]) ))) - (*((
double *) ( (__pyx_v_coords.data + __pyx_t_19 * __pyx_v_coords.strides[0]) ))))));
19486 __pyx_t_21 = ((__pyx_v_i == 0) != 0);
19489 __pyx_t_20 = __pyx_t_21;
19490 goto __pyx_L6_bool_binop_done;
19492 __pyx_t_21 = ((__pyx_v_dist < __pyx_v_min_dist) != 0);
19493 __pyx_t_20 = __pyx_t_21;
19494 __pyx_L6_bool_binop_done:;
19504 __pyx_v_min_dist = __pyx_v_dist;
19513 __pyx_v_nearest_eN = __pyx_v_eN;
19531 __pyx_v_i = (__pyx_v_i + 1);
19541 __pyx_r = __pyx_v_nearest_eN;
19554 __PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
19555 __Pyx_WriteUnraisable(
"mprans.MeshSmoothing.pyxGetLocalNearestElementAroundNode", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
19558 __PYX_XDEC_MEMVIEW(&__pyx_v_eN_coords, 1);
19559 __Pyx_RefNannyFinishContext();
19571 static void __pyx_f_6mprans_13MeshSmoothing_pyxUpdateElementBoundaryNormalsTetra(__Pyx_memviewslice __pyx_v_elementBoundaryNormalsArray_, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementBoundariesArray, __Pyx_memviewslice __pyx_v_elementBoundaryNodesArray, __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray, __Pyx_memviewslice __pyx_v_elementBarycentersArray,
int __pyx_v_nElements) {
19572 double __pyx_v_normal_check[3];
19573 double __pyx_v_U[3];
19574 double __pyx_v_V[3];
19576 __Pyx_memviewslice __pyx_v_node0 = { 0, 0, { 0 }, { 0 }, { 0 } };
19577 __Pyx_memviewslice __pyx_v_node1 = { 0, 0, { 0 }, { 0 }, { 0 } };
19578 __Pyx_memviewslice __pyx_v_node2 = { 0, 0, { 0 }, { 0 }, { 0 } };
19581 double __pyx_v_dot;
19582 double __pyx_v_lenghtn;
19583 __Pyx_RefNannyDeclarations
19588 Py_ssize_t __pyx_t_5;
19589 Py_ssize_t __pyx_t_6;
19590 Py_ssize_t __pyx_t_7;
19591 Py_ssize_t __pyx_t_8;
19592 Py_ssize_t __pyx_t_9;
19593 Py_ssize_t __pyx_t_10;
19594 __Pyx_memviewslice __pyx_t_11 = { 0, 0, { 0 }, { 0 }, { 0 } };
19595 Py_ssize_t __pyx_t_12;
19596 Py_ssize_t __pyx_t_13;
19597 Py_ssize_t __pyx_t_14;
19598 Py_ssize_t __pyx_t_15;
19599 Py_ssize_t __pyx_t_16;
19600 Py_ssize_t __pyx_t_17;
19601 Py_ssize_t __pyx_t_18;
19602 Py_ssize_t __pyx_t_19;
19603 Py_ssize_t __pyx_t_20;
19604 Py_ssize_t __pyx_t_21;
19605 Py_ssize_t __pyx_t_22;
19606 Py_ssize_t __pyx_t_23;
19607 Py_ssize_t __pyx_t_24;
19608 Py_ssize_t __pyx_t_25;
19609 Py_ssize_t __pyx_t_26;
19610 Py_ssize_t __pyx_t_27;
19611 Py_ssize_t __pyx_t_28;
19612 Py_ssize_t __pyx_t_29;
19613 Py_ssize_t __pyx_t_30;
19614 Py_ssize_t __pyx_t_31;
19615 Py_ssize_t __pyx_t_32;
19616 Py_ssize_t __pyx_t_33;
19617 Py_ssize_t __pyx_t_34;
19618 Py_ssize_t __pyx_t_35;
19619 Py_ssize_t __pyx_t_36;
19620 Py_ssize_t __pyx_t_37;
19621 Py_ssize_t __pyx_t_38;
19622 Py_ssize_t __pyx_t_39;
19623 Py_ssize_t __pyx_t_40;
19624 Py_ssize_t __pyx_t_41;
19625 Py_ssize_t __pyx_t_42;
19626 Py_ssize_t __pyx_t_43;
19627 Py_ssize_t __pyx_t_44;
19628 Py_ssize_t __pyx_t_45;
19629 Py_ssize_t __pyx_t_46;
19630 Py_ssize_t __pyx_t_47;
19631 Py_ssize_t __pyx_t_48;
19632 Py_ssize_t __pyx_t_49;
19633 Py_ssize_t __pyx_t_50;
19634 Py_ssize_t __pyx_t_51;
19635 Py_ssize_t __pyx_t_52;
19636 Py_ssize_t __pyx_t_53;
19637 Py_ssize_t __pyx_t_54;
19638 Py_ssize_t __pyx_t_55;
19639 Py_ssize_t __pyx_t_56;
19640 Py_ssize_t __pyx_t_57;
19641 Py_ssize_t __pyx_t_58;
19642 Py_ssize_t __pyx_t_59;
19643 Py_ssize_t __pyx_t_60;
19644 Py_ssize_t __pyx_t_61;
19645 Py_ssize_t __pyx_t_62;
19646 Py_ssize_t __pyx_t_63;
19647 Py_ssize_t __pyx_t_64;
19648 Py_ssize_t __pyx_t_65;
19649 Py_ssize_t __pyx_t_66;
19650 Py_ssize_t __pyx_t_67;
19651 Py_ssize_t __pyx_t_68;
19652 Py_ssize_t __pyx_t_69;
19653 Py_ssize_t __pyx_t_70;
19654 Py_ssize_t __pyx_t_71;
19655 Py_ssize_t __pyx_t_72;
19656 Py_ssize_t __pyx_t_73;
19657 Py_ssize_t __pyx_t_74;
19658 Py_ssize_t __pyx_t_75;
19659 Py_ssize_t __pyx_t_76;
19660 Py_ssize_t __pyx_t_77;
19661 Py_ssize_t __pyx_t_78;
19662 Py_ssize_t __pyx_t_79;
19664 Py_ssize_t __pyx_t_81;
19665 Py_ssize_t __pyx_t_82;
19666 Py_ssize_t __pyx_t_83;
19667 Py_ssize_t __pyx_t_84;
19668 Py_ssize_t __pyx_t_85;
19669 Py_ssize_t __pyx_t_86;
19670 Py_ssize_t __pyx_t_87;
19671 Py_ssize_t __pyx_t_88;
19672 Py_ssize_t __pyx_t_89;
19673 Py_ssize_t __pyx_t_90;
19674 Py_ssize_t __pyx_t_91;
19675 Py_ssize_t __pyx_t_92;
19676 Py_ssize_t __pyx_t_93;
19677 Py_ssize_t __pyx_t_94;
19678 Py_ssize_t __pyx_t_95;
19679 Py_ssize_t __pyx_t_96;
19680 Py_ssize_t __pyx_t_97;
19681 Py_ssize_t __pyx_t_98;
19682 __Pyx_RefNannySetupContext(
"pyxUpdateElementBoundaryNormalsTetra", 0);
19691 __pyx_t_1 = __pyx_v_nElements;
19692 __pyx_t_2 = __pyx_t_1;
19693 for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
19694 __pyx_v_i = __pyx_t_3;
19703 for (__pyx_t_4 = 0; __pyx_t_4 < 4; __pyx_t_4+=1) {
19704 __pyx_v_j = __pyx_t_4;
19713 __pyx_t_5 = __pyx_v_i;
19714 __pyx_t_6 = __pyx_v_j;
19715 if (__pyx_t_5 < 0) __pyx_t_5 += __pyx_v_elementBoundariesArray.shape[0];
19716 if (__pyx_t_6 < 0) __pyx_t_6 += __pyx_v_elementBoundariesArray.shape[1];
19717 __pyx_v_b_i = (*((
int *) ( (( (__pyx_v_elementBoundariesArray.data + __pyx_t_5 * __pyx_v_elementBoundariesArray.strides[0]) ) + __pyx_t_6 * __pyx_v_elementBoundariesArray.strides[1]) )));
19726 __pyx_t_7 = __pyx_v_i;
19727 __pyx_t_8 = __pyx_v_j;
19728 if (__pyx_t_7 < 0) __pyx_t_7 += __pyx_v_elementBoundariesArray.shape[0];
19729 if (__pyx_t_8 < 0) __pyx_t_8 += __pyx_v_elementBoundariesArray.shape[1];
19730 __pyx_t_9 = (*((
int *) ( (( (__pyx_v_elementBoundariesArray.data + __pyx_t_7 * __pyx_v_elementBoundariesArray.strides[0]) ) + __pyx_t_8 * __pyx_v_elementBoundariesArray.strides[1]) )));
19732 if (__pyx_t_9 < 0) __pyx_t_9 += __pyx_v_elementBoundaryNodesArray.shape[0];
19733 if (__pyx_t_10 < 0) __pyx_t_10 += __pyx_v_elementBoundaryNodesArray.shape[1];
19734 __pyx_t_11.data = __pyx_v_nodeArray.data;
19735 __pyx_t_11.memview = __pyx_v_nodeArray.memview;
19736 __PYX_INC_MEMVIEW(&__pyx_t_11, 0);
19738 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementBoundaryNodesArray.data + __pyx_t_9 * __pyx_v_elementBoundaryNodesArray.strides[0]) ) + __pyx_t_10 * __pyx_v_elementBoundaryNodesArray.strides[1]) )));
19739 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
19740 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
19741 if (__pyx_tmp_idx < 0)
19742 __pyx_tmp_idx += __pyx_tmp_shape;
19743 if ((0)) __PYX_ERR(0, 1369, __pyx_L1_error)
19744 __pyx_t_11.data += __pyx_tmp_idx * __pyx_tmp_stride;
19747 __pyx_t_11.shape[0] = __pyx_v_nodeArray.shape[1];
19748 __pyx_t_11.strides[0] = __pyx_v_nodeArray.strides[1];
19749 __pyx_t_11.suboffsets[0] = -1;
19751 __PYX_XDEC_MEMVIEW(&__pyx_v_node0, 1);
19752 __pyx_v_node0 = __pyx_t_11;
19753 __pyx_t_11.memview = NULL;
19754 __pyx_t_11.data = NULL;
19763 __pyx_t_12 = __pyx_v_i;
19764 __pyx_t_13 = __pyx_v_j;
19765 if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_v_elementBoundariesArray.shape[0];
19766 if (__pyx_t_13 < 0) __pyx_t_13 += __pyx_v_elementBoundariesArray.shape[1];
19767 __pyx_t_14 = (*((
int *) ( (( (__pyx_v_elementBoundariesArray.data + __pyx_t_12 * __pyx_v_elementBoundariesArray.strides[0]) ) + __pyx_t_13 * __pyx_v_elementBoundariesArray.strides[1]) )));
19769 if (__pyx_t_14 < 0) __pyx_t_14 += __pyx_v_elementBoundaryNodesArray.shape[0];
19770 if (__pyx_t_15 < 0) __pyx_t_15 += __pyx_v_elementBoundaryNodesArray.shape[1];
19771 __pyx_t_11.data = __pyx_v_nodeArray.data;
19772 __pyx_t_11.memview = __pyx_v_nodeArray.memview;
19773 __PYX_INC_MEMVIEW(&__pyx_t_11, 0);
19775 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementBoundaryNodesArray.data + __pyx_t_14 * __pyx_v_elementBoundaryNodesArray.strides[0]) ) + __pyx_t_15 * __pyx_v_elementBoundaryNodesArray.strides[1]) )));
19776 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
19777 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
19778 if (__pyx_tmp_idx < 0)
19779 __pyx_tmp_idx += __pyx_tmp_shape;
19780 if ((0)) __PYX_ERR(0, 1370, __pyx_L1_error)
19781 __pyx_t_11.data += __pyx_tmp_idx * __pyx_tmp_stride;
19784 __pyx_t_11.shape[0] = __pyx_v_nodeArray.shape[1];
19785 __pyx_t_11.strides[0] = __pyx_v_nodeArray.strides[1];
19786 __pyx_t_11.suboffsets[0] = -1;
19788 __PYX_XDEC_MEMVIEW(&__pyx_v_node1, 1);
19789 __pyx_v_node1 = __pyx_t_11;
19790 __pyx_t_11.memview = NULL;
19791 __pyx_t_11.data = NULL;
19800 __pyx_t_16 = __pyx_v_i;
19801 __pyx_t_17 = __pyx_v_j;
19802 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_elementBoundariesArray.shape[0];
19803 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_elementBoundariesArray.shape[1];
19804 __pyx_t_18 = (*((
int *) ( (( (__pyx_v_elementBoundariesArray.data + __pyx_t_16 * __pyx_v_elementBoundariesArray.strides[0]) ) + __pyx_t_17 * __pyx_v_elementBoundariesArray.strides[1]) )));
19806 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_elementBoundaryNodesArray.shape[0];
19807 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_elementBoundaryNodesArray.shape[1];
19808 __pyx_t_11.data = __pyx_v_nodeArray.data;
19809 __pyx_t_11.memview = __pyx_v_nodeArray.memview;
19810 __PYX_INC_MEMVIEW(&__pyx_t_11, 0);
19812 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementBoundaryNodesArray.data + __pyx_t_18 * __pyx_v_elementBoundaryNodesArray.strides[0]) ) + __pyx_t_19 * __pyx_v_elementBoundaryNodesArray.strides[1]) )));
19813 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
19814 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
19815 if (__pyx_tmp_idx < 0)
19816 __pyx_tmp_idx += __pyx_tmp_shape;
19817 if ((0)) __PYX_ERR(0, 1371, __pyx_L1_error)
19818 __pyx_t_11.data += __pyx_tmp_idx * __pyx_tmp_stride;
19821 __pyx_t_11.shape[0] = __pyx_v_nodeArray.shape[1];
19822 __pyx_t_11.strides[0] = __pyx_v_nodeArray.strides[1];
19823 __pyx_t_11.suboffsets[0] = -1;
19825 __PYX_XDEC_MEMVIEW(&__pyx_v_node2, 1);
19826 __pyx_v_node2 = __pyx_t_11;
19827 __pyx_t_11.memview = NULL;
19828 __pyx_t_11.data = NULL;
19838 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_node1.shape[0];
19840 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_node0.shape[0];
19841 (__pyx_v_U[0]) = ((*((
double *) ( (__pyx_v_node1.data + __pyx_t_20 * __pyx_v_node1.strides[0]) ))) - (*((
double *) ( (__pyx_v_node0.data + __pyx_t_21 * __pyx_v_node0.strides[0]) ))));
19851 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_node1.shape[0];
19853 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_node0.shape[0];
19854 (__pyx_v_U[1]) = ((*((
double *) ( (__pyx_v_node1.data + __pyx_t_22 * __pyx_v_node1.strides[0]) ))) - (*((
double *) ( (__pyx_v_node0.data + __pyx_t_23 * __pyx_v_node0.strides[0]) ))));
19864 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_node1.shape[0];
19866 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_node0.shape[0];
19867 (__pyx_v_U[2]) = ((*((
double *) ( (__pyx_v_node1.data + __pyx_t_24 * __pyx_v_node1.strides[0]) ))) - (*((
double *) ( (__pyx_v_node0.data + __pyx_t_25 * __pyx_v_node0.strides[0]) ))));
19877 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_node2.shape[0];
19879 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_node0.shape[0];
19880 (__pyx_v_V[0]) = ((*((
double *) ( (__pyx_v_node2.data + __pyx_t_26 * __pyx_v_node2.strides[0]) ))) - (*((
double *) ( (__pyx_v_node0.data + __pyx_t_27 * __pyx_v_node0.strides[0]) ))));
19890 if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_v_node2.shape[0];
19892 if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_v_node0.shape[0];
19893 (__pyx_v_V[1]) = ((*((
double *) ( (__pyx_v_node2.data + __pyx_t_28 * __pyx_v_node2.strides[0]) ))) - (*((
double *) ( (__pyx_v_node0.data + __pyx_t_29 * __pyx_v_node0.strides[0]) ))));
19903 if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_v_node2.shape[0];
19905 if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_v_node0.shape[0];
19906 (__pyx_v_V[2]) = ((*((
double *) ( (__pyx_v_node2.data + __pyx_t_30 * __pyx_v_node2.strides[0]) ))) - (*((
double *) ( (__pyx_v_node0.data + __pyx_t_31 * __pyx_v_node0.strides[0]) ))));
19915 __pyx_t_32 = __pyx_v_i;
19916 __pyx_t_33 = __pyx_v_j;
19918 if (__pyx_t_32 < 0) __pyx_t_32 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
19919 if (__pyx_t_33 < 0) __pyx_t_33 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
19920 if (__pyx_t_34 < 0) __pyx_t_34 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
19921 *((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_32 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_33 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_34 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) )) = (((__pyx_v_U[1]) * (__pyx_v_V[2])) - ((__pyx_v_U[2]) * (__pyx_v_V[1])));
19930 __pyx_t_35 = __pyx_v_i;
19931 __pyx_t_36 = __pyx_v_j;
19933 if (__pyx_t_35 < 0) __pyx_t_35 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
19934 if (__pyx_t_36 < 0) __pyx_t_36 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
19935 if (__pyx_t_37 < 0) __pyx_t_37 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
19936 *((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_35 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_36 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_37 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) )) = (((__pyx_v_U[2]) * (__pyx_v_V[0])) - ((__pyx_v_U[0]) * (__pyx_v_V[2])));
19945 __pyx_t_38 = __pyx_v_i;
19946 __pyx_t_39 = __pyx_v_j;
19948 if (__pyx_t_38 < 0) __pyx_t_38 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
19949 if (__pyx_t_39 < 0) __pyx_t_39 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
19950 if (__pyx_t_40 < 0) __pyx_t_40 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
19951 *((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_38 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_39 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_40 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) )) = (((__pyx_v_U[0]) * (__pyx_v_V[1])) - ((__pyx_v_U[1]) * (__pyx_v_V[0])));
19960 __pyx_t_41 = __pyx_v_i;
19961 __pyx_t_42 = __pyx_v_j;
19963 if (__pyx_t_41 < 0) __pyx_t_41 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
19964 if (__pyx_t_42 < 0) __pyx_t_42 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
19965 if (__pyx_t_43 < 0) __pyx_t_43 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
19966 __pyx_t_44 = __pyx_v_i;
19967 __pyx_t_45 = __pyx_v_j;
19969 if (__pyx_t_44 < 0) __pyx_t_44 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
19970 if (__pyx_t_45 < 0) __pyx_t_45 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
19971 if (__pyx_t_46 < 0) __pyx_t_46 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
19972 __pyx_t_47 = __pyx_v_i;
19973 __pyx_t_48 = __pyx_v_j;
19975 if (__pyx_t_47 < 0) __pyx_t_47 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
19976 if (__pyx_t_48 < 0) __pyx_t_48 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
19977 if (__pyx_t_49 < 0) __pyx_t_49 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
19978 __pyx_v_lenghtn = sqrt(((pow((*((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_41 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_42 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_43 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) ))), 2.0) + pow((*((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_44 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_45 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_46 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) ))), 2.0)) + pow((*((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_47 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_48 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_49 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) ))), 2.0)));
19987 __pyx_t_50 = __pyx_v_i;
19988 __pyx_t_51 = __pyx_v_j;
19990 if (__pyx_t_50 < 0) __pyx_t_50 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
19991 if (__pyx_t_51 < 0) __pyx_t_51 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
19992 if (__pyx_t_52 < 0) __pyx_t_52 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
19993 *((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_50 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_51 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_52 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) )) /= __pyx_v_lenghtn;
20002 __pyx_t_53 = __pyx_v_i;
20003 __pyx_t_54 = __pyx_v_j;
20005 if (__pyx_t_53 < 0) __pyx_t_53 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20006 if (__pyx_t_54 < 0) __pyx_t_54 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20007 if (__pyx_t_55 < 0) __pyx_t_55 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20008 *((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_53 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_54 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_55 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) )) /= __pyx_v_lenghtn;
20017 __pyx_t_56 = __pyx_v_i;
20018 __pyx_t_57 = __pyx_v_j;
20020 if (__pyx_t_56 < 0) __pyx_t_56 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20021 if (__pyx_t_57 < 0) __pyx_t_57 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20022 if (__pyx_t_58 < 0) __pyx_t_58 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20023 *((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_56 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_57 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_58 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) )) /= __pyx_v_lenghtn;
20032 __pyx_t_59 = __pyx_v_b_i;
20034 if (__pyx_t_59 < 0) __pyx_t_59 += __pyx_v_elementBoundaryBarycentersArray.shape[0];
20035 if (__pyx_t_60 < 0) __pyx_t_60 += __pyx_v_elementBoundaryBarycentersArray.shape[1];
20036 __pyx_t_61 = __pyx_v_i;
20038 if (__pyx_t_61 < 0) __pyx_t_61 += __pyx_v_elementBarycentersArray.shape[0];
20039 if (__pyx_t_62 < 0) __pyx_t_62 += __pyx_v_elementBarycentersArray.shape[1];
20040 (__pyx_v_normal_check[0]) = ((*((
double *) ( (( (__pyx_v_elementBoundaryBarycentersArray.data + __pyx_t_59 * __pyx_v_elementBoundaryBarycentersArray.strides[0]) ) + __pyx_t_60 * __pyx_v_elementBoundaryBarycentersArray.strides[1]) ))) - (*((
double *) ( (( (__pyx_v_elementBarycentersArray.data + __pyx_t_61 * __pyx_v_elementBarycentersArray.strides[0]) ) + __pyx_t_62 * __pyx_v_elementBarycentersArray.strides[1]) ))));
20049 __pyx_t_63 = __pyx_v_b_i;
20051 if (__pyx_t_63 < 0) __pyx_t_63 += __pyx_v_elementBoundaryBarycentersArray.shape[0];
20052 if (__pyx_t_64 < 0) __pyx_t_64 += __pyx_v_elementBoundaryBarycentersArray.shape[1];
20053 __pyx_t_65 = __pyx_v_i;
20055 if (__pyx_t_65 < 0) __pyx_t_65 += __pyx_v_elementBarycentersArray.shape[0];
20056 if (__pyx_t_66 < 0) __pyx_t_66 += __pyx_v_elementBarycentersArray.shape[1];
20057 (__pyx_v_normal_check[1]) = ((*((
double *) ( (( (__pyx_v_elementBoundaryBarycentersArray.data + __pyx_t_63 * __pyx_v_elementBoundaryBarycentersArray.strides[0]) ) + __pyx_t_64 * __pyx_v_elementBoundaryBarycentersArray.strides[1]) ))) - (*((
double *) ( (( (__pyx_v_elementBarycentersArray.data + __pyx_t_65 * __pyx_v_elementBarycentersArray.strides[0]) ) + __pyx_t_66 * __pyx_v_elementBarycentersArray.strides[1]) ))));
20066 __pyx_t_67 = __pyx_v_b_i;
20068 if (__pyx_t_67 < 0) __pyx_t_67 += __pyx_v_elementBoundaryBarycentersArray.shape[0];
20069 if (__pyx_t_68 < 0) __pyx_t_68 += __pyx_v_elementBoundaryBarycentersArray.shape[1];
20070 __pyx_t_69 = __pyx_v_i;
20072 if (__pyx_t_69 < 0) __pyx_t_69 += __pyx_v_elementBarycentersArray.shape[0];
20073 if (__pyx_t_70 < 0) __pyx_t_70 += __pyx_v_elementBarycentersArray.shape[1];
20074 (__pyx_v_normal_check[2]) = ((*((
double *) ( (( (__pyx_v_elementBoundaryBarycentersArray.data + __pyx_t_67 * __pyx_v_elementBoundaryBarycentersArray.strides[0]) ) + __pyx_t_68 * __pyx_v_elementBoundaryBarycentersArray.strides[1]) ))) - (*((
double *) ( (( (__pyx_v_elementBarycentersArray.data + __pyx_t_69 * __pyx_v_elementBarycentersArray.strides[0]) ) + __pyx_t_70 * __pyx_v_elementBarycentersArray.strides[1]) ))));
20083 __pyx_t_71 = __pyx_v_i;
20084 __pyx_t_72 = __pyx_v_j;
20086 if (__pyx_t_71 < 0) __pyx_t_71 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20087 if (__pyx_t_72 < 0) __pyx_t_72 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20088 if (__pyx_t_73 < 0) __pyx_t_73 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20097 __pyx_t_74 = __pyx_v_i;
20098 __pyx_t_75 = __pyx_v_j;
20100 if (__pyx_t_74 < 0) __pyx_t_74 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20101 if (__pyx_t_75 < 0) __pyx_t_75 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20102 if (__pyx_t_76 < 0) __pyx_t_76 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20111 __pyx_t_77 = __pyx_v_i;
20112 __pyx_t_78 = __pyx_v_j;
20114 if (__pyx_t_77 < 0) __pyx_t_77 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20115 if (__pyx_t_78 < 0) __pyx_t_78 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20116 if (__pyx_t_79 < 0) __pyx_t_79 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20125 __pyx_v_dot = ((((*((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_71 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_72 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_73 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) ))) * (__pyx_v_normal_check[0])) + ((*((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_74 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_75 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_76 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) ))) * (__pyx_v_normal_check[1]))) + ((*((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_77 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_78 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_79 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) ))) * (__pyx_v_normal_check[2])));
20134 __pyx_t_80 = ((__pyx_v_dot < 0.0) != 0);
20144 __pyx_t_81 = __pyx_v_i;
20145 __pyx_t_82 = __pyx_v_j;
20147 if (__pyx_t_81 < 0) __pyx_t_81 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20148 if (__pyx_t_82 < 0) __pyx_t_82 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20149 if (__pyx_t_83 < 0) __pyx_t_83 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20150 __pyx_t_84 = __pyx_v_i;
20151 __pyx_t_85 = __pyx_v_j;
20153 if (__pyx_t_84 < 0) __pyx_t_84 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20154 if (__pyx_t_85 < 0) __pyx_t_85 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20155 if (__pyx_t_86 < 0) __pyx_t_86 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20156 *((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_84 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_85 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_86 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) )) = (-(*((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_81 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_82 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_83 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) ))));
20165 __pyx_t_87 = __pyx_v_i;
20166 __pyx_t_88 = __pyx_v_j;
20168 if (__pyx_t_87 < 0) __pyx_t_87 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20169 if (__pyx_t_88 < 0) __pyx_t_88 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20170 if (__pyx_t_89 < 0) __pyx_t_89 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20171 __pyx_t_90 = __pyx_v_i;
20172 __pyx_t_91 = __pyx_v_j;
20174 if (__pyx_t_90 < 0) __pyx_t_90 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20175 if (__pyx_t_91 < 0) __pyx_t_91 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20176 if (__pyx_t_92 < 0) __pyx_t_92 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20177 *((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_90 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_91 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_92 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) )) = (-(*((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_87 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_88 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_89 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) ))));
20186 __pyx_t_93 = __pyx_v_i;
20187 __pyx_t_94 = __pyx_v_j;
20189 if (__pyx_t_93 < 0) __pyx_t_93 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20190 if (__pyx_t_94 < 0) __pyx_t_94 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20191 if (__pyx_t_95 < 0) __pyx_t_95 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20192 __pyx_t_96 = __pyx_v_i;
20193 __pyx_t_97 = __pyx_v_j;
20195 if (__pyx_t_96 < 0) __pyx_t_96 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20196 if (__pyx_t_97 < 0) __pyx_t_97 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20197 if (__pyx_t_98 < 0) __pyx_t_98 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20198 *((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_96 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_97 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_98 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) )) = (-(*((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_93 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_94 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_95 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) ))));
20222 __PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
20223 __Pyx_WriteUnraisable(
"mprans.MeshSmoothing.pyxUpdateElementBoundaryNormalsTetra", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
20225 __PYX_XDEC_MEMVIEW(&__pyx_v_node0, 1);
20226 __PYX_XDEC_MEMVIEW(&__pyx_v_node1, 1);
20227 __PYX_XDEC_MEMVIEW(&__pyx_v_node2, 1);
20228 __Pyx_RefNannyFinishContext();
20239 static void __pyx_f_6mprans_13MeshSmoothing_pyxUpdateElementBoundaryNormalsTriangle(__Pyx_memviewslice __pyx_v_elementBoundaryNormalsArray_, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_elementBoundariesArray, __Pyx_memviewslice __pyx_v_elementBoundaryNodesArray, __Pyx_memviewslice __pyx_v_elementBoundaryBarycentersArray, __Pyx_memviewslice __pyx_v_elementBarycentersArray,
int __pyx_v_nElements) {
20240 double __pyx_v_normal_check[2];
20241 double __pyx_v_U[2];
20243 __Pyx_memviewslice __pyx_v_node0 = { 0, 0, { 0 }, { 0 }, { 0 } };
20244 __Pyx_memviewslice __pyx_v_node1 = { 0, 0, { 0 }, { 0 }, { 0 } };
20247 double __pyx_v_dot;
20248 double __pyx_v_lenghtn;
20249 __Pyx_RefNannyDeclarations
20254 Py_ssize_t __pyx_t_5;
20255 Py_ssize_t __pyx_t_6;
20256 Py_ssize_t __pyx_t_7;
20257 Py_ssize_t __pyx_t_8;
20258 Py_ssize_t __pyx_t_9;
20259 Py_ssize_t __pyx_t_10;
20260 __Pyx_memviewslice __pyx_t_11 = { 0, 0, { 0 }, { 0 }, { 0 } };
20261 Py_ssize_t __pyx_t_12;
20262 Py_ssize_t __pyx_t_13;
20263 Py_ssize_t __pyx_t_14;
20264 Py_ssize_t __pyx_t_15;
20265 Py_ssize_t __pyx_t_16;
20266 Py_ssize_t __pyx_t_17;
20267 Py_ssize_t __pyx_t_18;
20268 Py_ssize_t __pyx_t_19;
20269 Py_ssize_t __pyx_t_20;
20270 Py_ssize_t __pyx_t_21;
20271 Py_ssize_t __pyx_t_22;
20272 Py_ssize_t __pyx_t_23;
20273 Py_ssize_t __pyx_t_24;
20274 Py_ssize_t __pyx_t_25;
20275 Py_ssize_t __pyx_t_26;
20276 Py_ssize_t __pyx_t_27;
20277 Py_ssize_t __pyx_t_28;
20278 Py_ssize_t __pyx_t_29;
20279 Py_ssize_t __pyx_t_30;
20280 Py_ssize_t __pyx_t_31;
20281 Py_ssize_t __pyx_t_32;
20282 Py_ssize_t __pyx_t_33;
20283 Py_ssize_t __pyx_t_34;
20284 Py_ssize_t __pyx_t_35;
20285 Py_ssize_t __pyx_t_36;
20286 Py_ssize_t __pyx_t_37;
20287 Py_ssize_t __pyx_t_38;
20288 Py_ssize_t __pyx_t_39;
20289 Py_ssize_t __pyx_t_40;
20290 Py_ssize_t __pyx_t_41;
20291 Py_ssize_t __pyx_t_42;
20292 Py_ssize_t __pyx_t_43;
20293 Py_ssize_t __pyx_t_44;
20294 Py_ssize_t __pyx_t_45;
20295 Py_ssize_t __pyx_t_46;
20296 Py_ssize_t __pyx_t_47;
20297 Py_ssize_t __pyx_t_48;
20298 Py_ssize_t __pyx_t_49;
20299 Py_ssize_t __pyx_t_50;
20300 Py_ssize_t __pyx_t_51;
20302 Py_ssize_t __pyx_t_53;
20303 Py_ssize_t __pyx_t_54;
20304 Py_ssize_t __pyx_t_55;
20305 Py_ssize_t __pyx_t_56;
20306 Py_ssize_t __pyx_t_57;
20307 Py_ssize_t __pyx_t_58;
20308 Py_ssize_t __pyx_t_59;
20309 Py_ssize_t __pyx_t_60;
20310 Py_ssize_t __pyx_t_61;
20311 Py_ssize_t __pyx_t_62;
20312 Py_ssize_t __pyx_t_63;
20313 Py_ssize_t __pyx_t_64;
20314 __Pyx_RefNannySetupContext(
"pyxUpdateElementBoundaryNormalsTriangle", 0);
20323 __pyx_t_1 = __pyx_v_nElements;
20324 __pyx_t_2 = __pyx_t_1;
20325 for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
20326 __pyx_v_i = __pyx_t_3;
20335 for (__pyx_t_4 = 0; __pyx_t_4 < 3; __pyx_t_4+=1) {
20336 __pyx_v_j = __pyx_t_4;
20345 __pyx_t_5 = __pyx_v_i;
20346 __pyx_t_6 = __pyx_v_j;
20347 if (__pyx_t_5 < 0) __pyx_t_5 += __pyx_v_elementBoundariesArray.shape[0];
20348 if (__pyx_t_6 < 0) __pyx_t_6 += __pyx_v_elementBoundariesArray.shape[1];
20349 __pyx_v_b_i = (*((
int *) ( (( (__pyx_v_elementBoundariesArray.data + __pyx_t_5 * __pyx_v_elementBoundariesArray.strides[0]) ) + __pyx_t_6 * __pyx_v_elementBoundariesArray.strides[1]) )));
20358 __pyx_t_7 = __pyx_v_i;
20359 __pyx_t_8 = __pyx_v_j;
20360 if (__pyx_t_7 < 0) __pyx_t_7 += __pyx_v_elementBoundariesArray.shape[0];
20361 if (__pyx_t_8 < 0) __pyx_t_8 += __pyx_v_elementBoundariesArray.shape[1];
20362 __pyx_t_9 = (*((
int *) ( (( (__pyx_v_elementBoundariesArray.data + __pyx_t_7 * __pyx_v_elementBoundariesArray.strides[0]) ) + __pyx_t_8 * __pyx_v_elementBoundariesArray.strides[1]) )));
20364 if (__pyx_t_9 < 0) __pyx_t_9 += __pyx_v_elementBoundaryNodesArray.shape[0];
20365 if (__pyx_t_10 < 0) __pyx_t_10 += __pyx_v_elementBoundaryNodesArray.shape[1];
20366 __pyx_t_11.data = __pyx_v_nodeArray.data;
20367 __pyx_t_11.memview = __pyx_v_nodeArray.memview;
20368 __PYX_INC_MEMVIEW(&__pyx_t_11, 0);
20370 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementBoundaryNodesArray.data + __pyx_t_9 * __pyx_v_elementBoundaryNodesArray.strides[0]) ) + __pyx_t_10 * __pyx_v_elementBoundaryNodesArray.strides[1]) )));
20371 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
20372 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
20373 if (__pyx_tmp_idx < 0)
20374 __pyx_tmp_idx += __pyx_tmp_shape;
20375 if ((0)) __PYX_ERR(0, 1414, __pyx_L1_error)
20376 __pyx_t_11.data += __pyx_tmp_idx * __pyx_tmp_stride;
20379 __pyx_t_11.shape[0] = __pyx_v_nodeArray.shape[1];
20380 __pyx_t_11.strides[0] = __pyx_v_nodeArray.strides[1];
20381 __pyx_t_11.suboffsets[0] = -1;
20383 __PYX_XDEC_MEMVIEW(&__pyx_v_node0, 1);
20384 __pyx_v_node0 = __pyx_t_11;
20385 __pyx_t_11.memview = NULL;
20386 __pyx_t_11.data = NULL;
20395 __pyx_t_12 = __pyx_v_i;
20396 __pyx_t_13 = __pyx_v_j;
20397 if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_v_elementBoundariesArray.shape[0];
20398 if (__pyx_t_13 < 0) __pyx_t_13 += __pyx_v_elementBoundariesArray.shape[1];
20399 __pyx_t_14 = (*((
int *) ( (( (__pyx_v_elementBoundariesArray.data + __pyx_t_12 * __pyx_v_elementBoundariesArray.strides[0]) ) + __pyx_t_13 * __pyx_v_elementBoundariesArray.strides[1]) )));
20401 if (__pyx_t_14 < 0) __pyx_t_14 += __pyx_v_elementBoundaryNodesArray.shape[0];
20402 if (__pyx_t_15 < 0) __pyx_t_15 += __pyx_v_elementBoundaryNodesArray.shape[1];
20403 __pyx_t_11.data = __pyx_v_nodeArray.data;
20404 __pyx_t_11.memview = __pyx_v_nodeArray.memview;
20405 __PYX_INC_MEMVIEW(&__pyx_t_11, 0);
20407 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementBoundaryNodesArray.data + __pyx_t_14 * __pyx_v_elementBoundaryNodesArray.strides[0]) ) + __pyx_t_15 * __pyx_v_elementBoundaryNodesArray.strides[1]) )));
20408 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
20409 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
20410 if (__pyx_tmp_idx < 0)
20411 __pyx_tmp_idx += __pyx_tmp_shape;
20412 if ((0)) __PYX_ERR(0, 1415, __pyx_L1_error)
20413 __pyx_t_11.data += __pyx_tmp_idx * __pyx_tmp_stride;
20416 __pyx_t_11.shape[0] = __pyx_v_nodeArray.shape[1];
20417 __pyx_t_11.strides[0] = __pyx_v_nodeArray.strides[1];
20418 __pyx_t_11.suboffsets[0] = -1;
20420 __PYX_XDEC_MEMVIEW(&__pyx_v_node1, 1);
20421 __pyx_v_node1 = __pyx_t_11;
20422 __pyx_t_11.memview = NULL;
20423 __pyx_t_11.data = NULL;
20433 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_node1.shape[0];
20435 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_node0.shape[0];
20436 (__pyx_v_U[0]) = ((*((
double *) ( (__pyx_v_node1.data + __pyx_t_16 * __pyx_v_node1.strides[0]) ))) - (*((
double *) ( (__pyx_v_node0.data + __pyx_t_17 * __pyx_v_node0.strides[0]) ))));
20446 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_node1.shape[0];
20448 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_node0.shape[0];
20449 (__pyx_v_U[1]) = ((*((
double *) ( (__pyx_v_node1.data + __pyx_t_18 * __pyx_v_node1.strides[0]) ))) - (*((
double *) ( (__pyx_v_node0.data + __pyx_t_19 * __pyx_v_node0.strides[0]) ))));
20458 __pyx_t_20 = __pyx_v_i;
20459 __pyx_t_21 = __pyx_v_j;
20461 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20462 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20463 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20464 *((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_20 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_21 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_22 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) )) = (-(__pyx_v_U[1]));
20473 __pyx_t_23 = __pyx_v_i;
20474 __pyx_t_24 = __pyx_v_j;
20476 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20477 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20478 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20479 *((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_23 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_24 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_25 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) )) = (__pyx_v_U[0]);
20488 __pyx_t_26 = __pyx_v_i;
20489 __pyx_t_27 = __pyx_v_j;
20491 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20492 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20493 if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20494 __pyx_t_29 = __pyx_v_i;
20495 __pyx_t_30 = __pyx_v_j;
20497 if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20498 if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20499 if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20500 __pyx_v_lenghtn = sqrt((pow((*((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_26 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_27 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_28 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) ))), 2.0) + pow((*((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_29 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_30 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_31 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) ))), 2.0)));
20509 __pyx_t_32 = __pyx_v_i;
20510 __pyx_t_33 = __pyx_v_j;
20512 if (__pyx_t_32 < 0) __pyx_t_32 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20513 if (__pyx_t_33 < 0) __pyx_t_33 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20514 if (__pyx_t_34 < 0) __pyx_t_34 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20515 *((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_32 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_33 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_34 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) )) /= __pyx_v_lenghtn;
20524 __pyx_t_35 = __pyx_v_i;
20525 __pyx_t_36 = __pyx_v_j;
20527 if (__pyx_t_35 < 0) __pyx_t_35 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20528 if (__pyx_t_36 < 0) __pyx_t_36 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20529 if (__pyx_t_37 < 0) __pyx_t_37 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20530 *((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_35 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_36 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_37 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) )) /= __pyx_v_lenghtn;
20539 __pyx_t_38 = __pyx_v_b_i;
20541 if (__pyx_t_38 < 0) __pyx_t_38 += __pyx_v_elementBoundaryBarycentersArray.shape[0];
20542 if (__pyx_t_39 < 0) __pyx_t_39 += __pyx_v_elementBoundaryBarycentersArray.shape[1];
20543 __pyx_t_40 = __pyx_v_i;
20545 if (__pyx_t_40 < 0) __pyx_t_40 += __pyx_v_elementBarycentersArray.shape[0];
20546 if (__pyx_t_41 < 0) __pyx_t_41 += __pyx_v_elementBarycentersArray.shape[1];
20547 (__pyx_v_normal_check[0]) = ((*((
double *) ( (( (__pyx_v_elementBoundaryBarycentersArray.data + __pyx_t_38 * __pyx_v_elementBoundaryBarycentersArray.strides[0]) ) + __pyx_t_39 * __pyx_v_elementBoundaryBarycentersArray.strides[1]) ))) - (*((
double *) ( (( (__pyx_v_elementBarycentersArray.data + __pyx_t_40 * __pyx_v_elementBarycentersArray.strides[0]) ) + __pyx_t_41 * __pyx_v_elementBarycentersArray.strides[1]) ))));
20556 __pyx_t_42 = __pyx_v_b_i;
20558 if (__pyx_t_42 < 0) __pyx_t_42 += __pyx_v_elementBoundaryBarycentersArray.shape[0];
20559 if (__pyx_t_43 < 0) __pyx_t_43 += __pyx_v_elementBoundaryBarycentersArray.shape[1];
20560 __pyx_t_44 = __pyx_v_i;
20562 if (__pyx_t_44 < 0) __pyx_t_44 += __pyx_v_elementBarycentersArray.shape[0];
20563 if (__pyx_t_45 < 0) __pyx_t_45 += __pyx_v_elementBarycentersArray.shape[1];
20564 (__pyx_v_normal_check[1]) = ((*((
double *) ( (( (__pyx_v_elementBoundaryBarycentersArray.data + __pyx_t_42 * __pyx_v_elementBoundaryBarycentersArray.strides[0]) ) + __pyx_t_43 * __pyx_v_elementBoundaryBarycentersArray.strides[1]) ))) - (*((
double *) ( (( (__pyx_v_elementBarycentersArray.data + __pyx_t_44 * __pyx_v_elementBarycentersArray.strides[0]) ) + __pyx_t_45 * __pyx_v_elementBarycentersArray.strides[1]) ))));
20573 __pyx_t_46 = __pyx_v_i;
20574 __pyx_t_47 = __pyx_v_j;
20576 if (__pyx_t_46 < 0) __pyx_t_46 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20577 if (__pyx_t_47 < 0) __pyx_t_47 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20578 if (__pyx_t_48 < 0) __pyx_t_48 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20587 __pyx_t_49 = __pyx_v_i;
20588 __pyx_t_50 = __pyx_v_j;
20590 if (__pyx_t_49 < 0) __pyx_t_49 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20591 if (__pyx_t_50 < 0) __pyx_t_50 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20592 if (__pyx_t_51 < 0) __pyx_t_51 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20601 __pyx_v_dot = (((*((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_46 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_47 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_48 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) ))) * (__pyx_v_normal_check[0])) + ((*((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_49 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_50 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_51 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) ))) * (__pyx_v_normal_check[1])));
20610 __pyx_t_52 = ((__pyx_v_dot < 0.0) != 0);
20620 __pyx_t_53 = __pyx_v_i;
20621 __pyx_t_54 = __pyx_v_j;
20623 if (__pyx_t_53 < 0) __pyx_t_53 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20624 if (__pyx_t_54 < 0) __pyx_t_54 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20625 if (__pyx_t_55 < 0) __pyx_t_55 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20626 __pyx_t_56 = __pyx_v_i;
20627 __pyx_t_57 = __pyx_v_j;
20629 if (__pyx_t_56 < 0) __pyx_t_56 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20630 if (__pyx_t_57 < 0) __pyx_t_57 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20631 if (__pyx_t_58 < 0) __pyx_t_58 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20632 *((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_56 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_57 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_58 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) )) = (-(*((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_53 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_54 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_55 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) ))));
20641 __pyx_t_59 = __pyx_v_i;
20642 __pyx_t_60 = __pyx_v_j;
20644 if (__pyx_t_59 < 0) __pyx_t_59 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20645 if (__pyx_t_60 < 0) __pyx_t_60 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20646 if (__pyx_t_61 < 0) __pyx_t_61 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20647 __pyx_t_62 = __pyx_v_i;
20648 __pyx_t_63 = __pyx_v_j;
20650 if (__pyx_t_62 < 0) __pyx_t_62 += __pyx_v_elementBoundaryNormalsArray_.shape[0];
20651 if (__pyx_t_63 < 0) __pyx_t_63 += __pyx_v_elementBoundaryNormalsArray_.shape[1];
20652 if (__pyx_t_64 < 0) __pyx_t_64 += __pyx_v_elementBoundaryNormalsArray_.shape[2];
20653 *((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_62 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_63 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_64 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) )) = (-(*((
double *) ( (( (( (__pyx_v_elementBoundaryNormalsArray_.data + __pyx_t_59 * __pyx_v_elementBoundaryNormalsArray_.strides[0]) ) + __pyx_t_60 * __pyx_v_elementBoundaryNormalsArray_.strides[1]) ) + __pyx_t_61 * __pyx_v_elementBoundaryNormalsArray_.strides[2]) ))));
20677 __PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
20678 __Pyx_WriteUnraisable(
"mprans.MeshSmoothing.pyxUpdateElementBoundaryNormalsTriangle", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
20680 __PYX_XDEC_MEMVIEW(&__pyx_v_node0, 1);
20681 __PYX_XDEC_MEMVIEW(&__pyx_v_node1, 1);
20682 __Pyx_RefNannyFinishContext();
20693 static void __pyx_f_6mprans_13MeshSmoothing_cyUpdateElementVolumesTriangle(__Pyx_memviewslice __pyx_v_elementVolumesArray_, __Pyx_memviewslice __pyx_v_elementNodesArray, __Pyx_memviewslice __pyx_v_nodeArray,
int __pyx_v_nElements) {
20694 __Pyx_memviewslice __pyx_v_nA = { 0, 0, { 0 }, { 0 }, { 0 } };
20695 __Pyx_memviewslice __pyx_v_nB = { 0, 0, { 0 }, { 0 }, { 0 } };
20696 __Pyx_memviewslice __pyx_v_nC = { 0, 0, { 0 }, { 0 }, { 0 } };
20697 double __pyx_v_base;
20698 double __pyx_v_height;
20700 __Pyx_RefNannyDeclarations
20704 Py_ssize_t __pyx_t_4;
20705 Py_ssize_t __pyx_t_5;
20706 __Pyx_memviewslice __pyx_t_6 = { 0, 0, { 0 }, { 0 }, { 0 } };
20707 Py_ssize_t __pyx_t_7;
20708 Py_ssize_t __pyx_t_8;
20709 Py_ssize_t __pyx_t_9;
20710 Py_ssize_t __pyx_t_10;
20711 Py_ssize_t __pyx_t_11;
20712 Py_ssize_t __pyx_t_12;
20713 Py_ssize_t __pyx_t_13;
20714 Py_ssize_t __pyx_t_14;
20715 Py_ssize_t __pyx_t_15;
20716 Py_ssize_t __pyx_t_16;
20717 Py_ssize_t __pyx_t_17;
20718 Py_ssize_t __pyx_t_18;
20719 Py_ssize_t __pyx_t_19;
20720 Py_ssize_t __pyx_t_20;
20721 Py_ssize_t __pyx_t_21;
20722 Py_ssize_t __pyx_t_22;
20723 Py_ssize_t __pyx_t_23;
20724 Py_ssize_t __pyx_t_24;
20725 Py_ssize_t __pyx_t_25;
20726 __Pyx_RefNannySetupContext(
"cyUpdateElementVolumesTriangle", 0);
20735 __pyx_t_1 = __pyx_v_nElements;
20736 __pyx_t_2 = __pyx_t_1;
20737 for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
20738 __pyx_v_eN = __pyx_t_3;
20747 __pyx_t_4 = __pyx_v_eN;
20749 if (__pyx_t_4 < 0) __pyx_t_4 += __pyx_v_elementNodesArray.shape[0];
20750 if (__pyx_t_5 < 0) __pyx_t_5 += __pyx_v_elementNodesArray.shape[1];
20751 __pyx_t_6.data = __pyx_v_nodeArray.data;
20752 __pyx_t_6.memview = __pyx_v_nodeArray.memview;
20753 __PYX_INC_MEMVIEW(&__pyx_t_6, 0);
20755 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_4 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_5 * __pyx_v_elementNodesArray.strides[1]) )));
20756 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
20757 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
20758 if (__pyx_tmp_idx < 0)
20759 __pyx_tmp_idx += __pyx_tmp_shape;
20760 if ((0)) __PYX_ERR(0, 1442, __pyx_L1_error)
20761 __pyx_t_6.data += __pyx_tmp_idx * __pyx_tmp_stride;
20764 __pyx_t_6.shape[0] = __pyx_v_nodeArray.shape[1];
20765 __pyx_t_6.strides[0] = __pyx_v_nodeArray.strides[1];
20766 __pyx_t_6.suboffsets[0] = -1;
20768 __PYX_XDEC_MEMVIEW(&__pyx_v_nA, 1);
20769 __pyx_v_nA = __pyx_t_6;
20770 __pyx_t_6.memview = NULL;
20771 __pyx_t_6.data = NULL;
20780 __pyx_t_7 = __pyx_v_eN;
20782 if (__pyx_t_7 < 0) __pyx_t_7 += __pyx_v_elementNodesArray.shape[0];
20783 if (__pyx_t_8 < 0) __pyx_t_8 += __pyx_v_elementNodesArray.shape[1];
20784 __pyx_t_6.data = __pyx_v_nodeArray.data;
20785 __pyx_t_6.memview = __pyx_v_nodeArray.memview;
20786 __PYX_INC_MEMVIEW(&__pyx_t_6, 0);
20788 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_7 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_8 * __pyx_v_elementNodesArray.strides[1]) )));
20789 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
20790 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
20791 if (__pyx_tmp_idx < 0)
20792 __pyx_tmp_idx += __pyx_tmp_shape;
20793 if ((0)) __PYX_ERR(0, 1443, __pyx_L1_error)
20794 __pyx_t_6.data += __pyx_tmp_idx * __pyx_tmp_stride;
20797 __pyx_t_6.shape[0] = __pyx_v_nodeArray.shape[1];
20798 __pyx_t_6.strides[0] = __pyx_v_nodeArray.strides[1];
20799 __pyx_t_6.suboffsets[0] = -1;
20801 __PYX_XDEC_MEMVIEW(&__pyx_v_nB, 1);
20802 __pyx_v_nB = __pyx_t_6;
20803 __pyx_t_6.memview = NULL;
20804 __pyx_t_6.data = NULL;
20813 __pyx_t_9 = __pyx_v_eN;
20815 if (__pyx_t_9 < 0) __pyx_t_9 += __pyx_v_elementNodesArray.shape[0];
20816 if (__pyx_t_10 < 0) __pyx_t_10 += __pyx_v_elementNodesArray.shape[1];
20817 __pyx_t_6.data = __pyx_v_nodeArray.data;
20818 __pyx_t_6.memview = __pyx_v_nodeArray.memview;
20819 __PYX_INC_MEMVIEW(&__pyx_t_6, 0);
20821 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_9 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_10 * __pyx_v_elementNodesArray.strides[1]) )));
20822 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
20823 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
20824 if (__pyx_tmp_idx < 0)
20825 __pyx_tmp_idx += __pyx_tmp_shape;
20826 if ((0)) __PYX_ERR(0, 1444, __pyx_L1_error)
20827 __pyx_t_6.data += __pyx_tmp_idx * __pyx_tmp_stride;
20830 __pyx_t_6.shape[0] = __pyx_v_nodeArray.shape[1];
20831 __pyx_t_6.strides[0] = __pyx_v_nodeArray.strides[1];
20832 __pyx_t_6.suboffsets[0] = -1;
20834 __PYX_XDEC_MEMVIEW(&__pyx_v_nC, 1);
20835 __pyx_v_nC = __pyx_t_6;
20836 __pyx_t_6.memview = NULL;
20837 __pyx_t_6.data = NULL;
20847 if (__pyx_t_11 < 0) __pyx_t_11 += __pyx_v_nB.shape[0];
20849 if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_v_nA.shape[0];
20851 if (__pyx_t_13 < 0) __pyx_t_13 += __pyx_v_nB.shape[0];
20853 if (__pyx_t_14 < 0) __pyx_t_14 += __pyx_v_nA.shape[0];
20854 __pyx_v_base = sqrt((pow(((*((
double *) ( (__pyx_v_nB.data + __pyx_t_11 * __pyx_v_nB.strides[0]) ))) - (*((
double *) ( (__pyx_v_nA.data + __pyx_t_12 * __pyx_v_nA.strides[0]) )))), 2.0) + pow(((*((
double *) ( (__pyx_v_nB.data + __pyx_t_13 * __pyx_v_nB.strides[0]) ))) - (*((
double *) ( (__pyx_v_nA.data + __pyx_t_14 * __pyx_v_nA.strides[0]) )))), 2.0)));
20864 if (__pyx_t_15 < 0) __pyx_t_15 += __pyx_v_nB.shape[0];
20866 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_nA.shape[0];
20868 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_nC.shape[0];
20870 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_nB.shape[0];
20872 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_nA.shape[0];
20874 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_nC.shape[0];
20876 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_nB.shape[0];
20878 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_nA.shape[0];
20880 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_nB.shape[0];
20882 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_nA.shape[0];
20883 __pyx_v_height = (fabs(((((((*((
double *) ( (__pyx_v_nB.data + __pyx_t_15 * __pyx_v_nB.strides[0]) ))) - (*((
double *) ( (__pyx_v_nA.data + __pyx_t_16 * __pyx_v_nA.strides[0]) )))) * (*((
double *) ( (__pyx_v_nC.data + __pyx_t_17 * __pyx_v_nC.strides[0]) )))) - (((*((
double *) ( (__pyx_v_nB.data + __pyx_t_18 * __pyx_v_nB.strides[0]) ))) - (*((
double *) ( (__pyx_v_nA.data + __pyx_t_19 * __pyx_v_nA.strides[0]) )))) * (*((
double *) ( (__pyx_v_nC.data + __pyx_t_20 * __pyx_v_nC.strides[0]) ))))) + ((*((
double *) ( (__pyx_v_nB.data + __pyx_t_21 * __pyx_v_nB.strides[0]) ))) * (*((
double *) ( (__pyx_v_nA.data + __pyx_t_22 * __pyx_v_nA.strides[0]) ))))) - ((*((
double *) ( (__pyx_v_nB.data + __pyx_t_23 * __pyx_v_nB.strides[0]) ))) * (*((
double *) ( (__pyx_v_nA.data + __pyx_t_24 * __pyx_v_nA.strides[0]) )))))) / __pyx_v_base);
20892 __pyx_t_25 = __pyx_v_eN;
20893 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_elementVolumesArray_.shape[0];
20894 *((
double *) ( (__pyx_v_elementVolumesArray_.data + __pyx_t_25 * __pyx_v_elementVolumesArray_.strides[0]) )) = ((0.5 * __pyx_v_base) * __pyx_v_height);
20908 __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
20909 __Pyx_WriteUnraisable(
"mprans.MeshSmoothing.cyUpdateElementVolumesTriangle", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
20911 __PYX_XDEC_MEMVIEW(&__pyx_v_nA, 1);
20912 __PYX_XDEC_MEMVIEW(&__pyx_v_nB, 1);
20913 __PYX_XDEC_MEMVIEW(&__pyx_v_nC, 1);
20914 __Pyx_RefNannyFinishContext();
20925 static double __pyx_f_6mprans_13MeshSmoothing_cyGetElementVolumeTriangle(__Pyx_memviewslice __pyx_v_nA, __Pyx_memviewslice __pyx_v_nB, __Pyx_memviewslice __pyx_v_nC) {
20926 double __pyx_v_base;
20927 double __pyx_v_height;
20929 __Pyx_RefNannyDeclarations
20930 Py_ssize_t __pyx_t_1;
20931 Py_ssize_t __pyx_t_2;
20932 Py_ssize_t __pyx_t_3;
20933 Py_ssize_t __pyx_t_4;
20934 Py_ssize_t __pyx_t_5;
20935 Py_ssize_t __pyx_t_6;
20936 Py_ssize_t __pyx_t_7;
20937 Py_ssize_t __pyx_t_8;
20938 Py_ssize_t __pyx_t_9;
20939 Py_ssize_t __pyx_t_10;
20940 Py_ssize_t __pyx_t_11;
20941 Py_ssize_t __pyx_t_12;
20942 Py_ssize_t __pyx_t_13;
20943 Py_ssize_t __pyx_t_14;
20944 __Pyx_RefNannySetupContext(
"cyGetElementVolumeTriangle", 0);
20954 if (__pyx_t_1 < 0) __pyx_t_1 += __pyx_v_nB.shape[0];
20956 if (__pyx_t_2 < 0) __pyx_t_2 += __pyx_v_nA.shape[0];
20958 if (__pyx_t_3 < 0) __pyx_t_3 += __pyx_v_nB.shape[0];
20960 if (__pyx_t_4 < 0) __pyx_t_4 += __pyx_v_nA.shape[0];
20961 __pyx_v_base = sqrt((pow(((*((
double *) ( (__pyx_v_nB.data + __pyx_t_1 * __pyx_v_nB.strides[0]) ))) - (*((
double *) ( (__pyx_v_nA.data + __pyx_t_2 * __pyx_v_nA.strides[0]) )))), 2.0) + pow(((*((
double *) ( (__pyx_v_nB.data + __pyx_t_3 * __pyx_v_nB.strides[0]) ))) - (*((
double *) ( (__pyx_v_nA.data + __pyx_t_4 * __pyx_v_nA.strides[0]) )))), 2.0)));
20971 if (__pyx_t_5 < 0) __pyx_t_5 += __pyx_v_nB.shape[0];
20973 if (__pyx_t_6 < 0) __pyx_t_6 += __pyx_v_nA.shape[0];
20975 if (__pyx_t_7 < 0) __pyx_t_7 += __pyx_v_nC.shape[0];
20977 if (__pyx_t_8 < 0) __pyx_t_8 += __pyx_v_nB.shape[0];
20979 if (__pyx_t_9 < 0) __pyx_t_9 += __pyx_v_nA.shape[0];
20981 if (__pyx_t_10 < 0) __pyx_t_10 += __pyx_v_nC.shape[0];
20983 if (__pyx_t_11 < 0) __pyx_t_11 += __pyx_v_nB.shape[0];
20985 if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_v_nA.shape[0];
20987 if (__pyx_t_13 < 0) __pyx_t_13 += __pyx_v_nB.shape[0];
20989 if (__pyx_t_14 < 0) __pyx_t_14 += __pyx_v_nA.shape[0];
20990 __pyx_v_height = (fabs(((((((*((
double *) ( (__pyx_v_nB.data + __pyx_t_5 * __pyx_v_nB.strides[0]) ))) - (*((
double *) ( (__pyx_v_nA.data + __pyx_t_6 * __pyx_v_nA.strides[0]) )))) * (*((
double *) ( (__pyx_v_nC.data + __pyx_t_7 * __pyx_v_nC.strides[0]) )))) - (((*((
double *) ( (__pyx_v_nB.data + __pyx_t_8 * __pyx_v_nB.strides[0]) ))) - (*((
double *) ( (__pyx_v_nA.data + __pyx_t_9 * __pyx_v_nA.strides[0]) )))) * (*((
double *) ( (__pyx_v_nC.data + __pyx_t_10 * __pyx_v_nC.strides[0]) ))))) + ((*((
double *) ( (__pyx_v_nB.data + __pyx_t_11 * __pyx_v_nB.strides[0]) ))) * (*((
double *) ( (__pyx_v_nA.data + __pyx_t_12 * __pyx_v_nA.strides[0]) ))))) - ((*((
double *) ( (__pyx_v_nB.data + __pyx_t_13 * __pyx_v_nB.strides[0]) ))) * (*((
double *) ( (__pyx_v_nA.data + __pyx_t_14 * __pyx_v_nA.strides[0]) )))))) / __pyx_v_base);
20999 __pyx_r = ((0.5 * __pyx_v_base) * __pyx_v_height);
21012 __Pyx_RefNannyFinishContext();
21024 static void __pyx_f_6mprans_13MeshSmoothing_cyUpdateElementVolumesTetra(__Pyx_memviewslice __pyx_v_elementVolumesArray_, __Pyx_memviewslice __pyx_v_elementNodesArray, __Pyx_memviewslice __pyx_v_nodeArray,
int __pyx_v_nElements) {
21025 __Pyx_memviewslice __pyx_v_nA = { 0, 0, { 0 }, { 0 }, { 0 } };
21026 __Pyx_memviewslice __pyx_v_nB = { 0, 0, { 0 }, { 0 }, { 0 } };
21027 __Pyx_memviewslice __pyx_v_nC = { 0, 0, { 0 }, { 0 }, { 0 } };
21028 CYTHON_UNUSED __Pyx_memviewslice __pyx_v_nD = { 0, 0, { 0 }, { 0 }, { 0 } };
21029 double __pyx_v_base_tri;
21030 double __pyx_v_height_tri;
21031 double __pyx_v_area_tri;
21032 double __pyx_v_height_tetra;
21034 __Pyx_RefNannyDeclarations
21038 Py_ssize_t __pyx_t_4;
21039 Py_ssize_t __pyx_t_5;
21040 __Pyx_memviewslice __pyx_t_6 = { 0, 0, { 0 }, { 0 }, { 0 } };
21041 Py_ssize_t __pyx_t_7;
21042 Py_ssize_t __pyx_t_8;
21043 Py_ssize_t __pyx_t_9;
21044 Py_ssize_t __pyx_t_10;
21045 Py_ssize_t __pyx_t_11;
21046 Py_ssize_t __pyx_t_12;
21047 Py_ssize_t __pyx_t_13;
21048 Py_ssize_t __pyx_t_14;
21049 Py_ssize_t __pyx_t_15;
21050 Py_ssize_t __pyx_t_16;
21051 Py_ssize_t __pyx_t_17;
21052 Py_ssize_t __pyx_t_18;
21053 Py_ssize_t __pyx_t_19;
21054 Py_ssize_t __pyx_t_20;
21055 Py_ssize_t __pyx_t_21;
21056 Py_ssize_t __pyx_t_22;
21057 Py_ssize_t __pyx_t_23;
21058 Py_ssize_t __pyx_t_24;
21059 Py_ssize_t __pyx_t_25;
21060 Py_ssize_t __pyx_t_26;
21061 Py_ssize_t __pyx_t_27;
21062 __Pyx_RefNannySetupContext(
"cyUpdateElementVolumesTetra", 0);
21071 __pyx_t_1 = __pyx_v_nElements;
21072 __pyx_t_2 = __pyx_t_1;
21073 for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
21074 __pyx_v_eN = __pyx_t_3;
21083 __pyx_t_4 = __pyx_v_eN;
21085 if (__pyx_t_4 < 0) __pyx_t_4 += __pyx_v_elementNodesArray.shape[0];
21086 if (__pyx_t_5 < 0) __pyx_t_5 += __pyx_v_elementNodesArray.shape[1];
21087 __pyx_t_6.data = __pyx_v_nodeArray.data;
21088 __pyx_t_6.memview = __pyx_v_nodeArray.memview;
21089 __PYX_INC_MEMVIEW(&__pyx_t_6, 0);
21091 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_4 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_5 * __pyx_v_elementNodesArray.strides[1]) )));
21092 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
21093 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
21094 if (__pyx_tmp_idx < 0)
21095 __pyx_tmp_idx += __pyx_tmp_shape;
21096 if ((0)) __PYX_ERR(0, 1470, __pyx_L1_error)
21097 __pyx_t_6.data += __pyx_tmp_idx * __pyx_tmp_stride;
21100 __pyx_t_6.shape[0] = __pyx_v_nodeArray.shape[1];
21101 __pyx_t_6.strides[0] = __pyx_v_nodeArray.strides[1];
21102 __pyx_t_6.suboffsets[0] = -1;
21104 __PYX_XDEC_MEMVIEW(&__pyx_v_nA, 1);
21105 __pyx_v_nA = __pyx_t_6;
21106 __pyx_t_6.memview = NULL;
21107 __pyx_t_6.data = NULL;
21116 __pyx_t_7 = __pyx_v_eN;
21118 if (__pyx_t_7 < 0) __pyx_t_7 += __pyx_v_elementNodesArray.shape[0];
21119 if (__pyx_t_8 < 0) __pyx_t_8 += __pyx_v_elementNodesArray.shape[1];
21120 __pyx_t_6.data = __pyx_v_nodeArray.data;
21121 __pyx_t_6.memview = __pyx_v_nodeArray.memview;
21122 __PYX_INC_MEMVIEW(&__pyx_t_6, 0);
21124 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_7 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_8 * __pyx_v_elementNodesArray.strides[1]) )));
21125 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
21126 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
21127 if (__pyx_tmp_idx < 0)
21128 __pyx_tmp_idx += __pyx_tmp_shape;
21129 if ((0)) __PYX_ERR(0, 1471, __pyx_L1_error)
21130 __pyx_t_6.data += __pyx_tmp_idx * __pyx_tmp_stride;
21133 __pyx_t_6.shape[0] = __pyx_v_nodeArray.shape[1];
21134 __pyx_t_6.strides[0] = __pyx_v_nodeArray.strides[1];
21135 __pyx_t_6.suboffsets[0] = -1;
21137 __PYX_XDEC_MEMVIEW(&__pyx_v_nB, 1);
21138 __pyx_v_nB = __pyx_t_6;
21139 __pyx_t_6.memview = NULL;
21140 __pyx_t_6.data = NULL;
21149 __pyx_t_9 = __pyx_v_eN;
21151 if (__pyx_t_9 < 0) __pyx_t_9 += __pyx_v_elementNodesArray.shape[0];
21152 if (__pyx_t_10 < 0) __pyx_t_10 += __pyx_v_elementNodesArray.shape[1];
21153 __pyx_t_6.data = __pyx_v_nodeArray.data;
21154 __pyx_t_6.memview = __pyx_v_nodeArray.memview;
21155 __PYX_INC_MEMVIEW(&__pyx_t_6, 0);
21157 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_9 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_10 * __pyx_v_elementNodesArray.strides[1]) )));
21158 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
21159 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
21160 if (__pyx_tmp_idx < 0)
21161 __pyx_tmp_idx += __pyx_tmp_shape;
21162 if ((0)) __PYX_ERR(0, 1472, __pyx_L1_error)
21163 __pyx_t_6.data += __pyx_tmp_idx * __pyx_tmp_stride;
21166 __pyx_t_6.shape[0] = __pyx_v_nodeArray.shape[1];
21167 __pyx_t_6.strides[0] = __pyx_v_nodeArray.strides[1];
21168 __pyx_t_6.suboffsets[0] = -1;
21170 __PYX_XDEC_MEMVIEW(&__pyx_v_nC, 1);
21171 __pyx_v_nC = __pyx_t_6;
21172 __pyx_t_6.memview = NULL;
21173 __pyx_t_6.data = NULL;
21182 __pyx_t_11 = __pyx_v_eN;
21184 if (__pyx_t_11 < 0) __pyx_t_11 += __pyx_v_elementNodesArray.shape[0];
21185 if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_v_elementNodesArray.shape[1];
21186 __pyx_t_6.data = __pyx_v_nodeArray.data;
21187 __pyx_t_6.memview = __pyx_v_nodeArray.memview;
21188 __PYX_INC_MEMVIEW(&__pyx_t_6, 0);
21190 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_11 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_12 * __pyx_v_elementNodesArray.strides[1]) )));
21191 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
21192 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
21193 if (__pyx_tmp_idx < 0)
21194 __pyx_tmp_idx += __pyx_tmp_shape;
21195 if ((0)) __PYX_ERR(0, 1473, __pyx_L1_error)
21196 __pyx_t_6.data += __pyx_tmp_idx * __pyx_tmp_stride;
21199 __pyx_t_6.shape[0] = __pyx_v_nodeArray.shape[1];
21200 __pyx_t_6.strides[0] = __pyx_v_nodeArray.strides[1];
21201 __pyx_t_6.suboffsets[0] = -1;
21203 __PYX_XDEC_MEMVIEW(&__pyx_v_nD, 1);
21204 __pyx_v_nD = __pyx_t_6;
21205 __pyx_t_6.memview = NULL;
21206 __pyx_t_6.data = NULL;
21216 if (__pyx_t_13 < 0) __pyx_t_13 += __pyx_v_nB.shape[0];
21218 if (__pyx_t_14 < 0) __pyx_t_14 += __pyx_v_nA.shape[0];
21220 if (__pyx_t_15 < 0) __pyx_t_15 += __pyx_v_nB.shape[0];
21222 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_nA.shape[0];
21223 __pyx_v_base_tri = sqrt((pow(((*((
double *) ( (__pyx_v_nB.data + __pyx_t_13 * __pyx_v_nB.strides[0]) ))) - (*((
double *) ( (__pyx_v_nA.data + __pyx_t_14 * __pyx_v_nA.strides[0]) )))), 2.0) + pow(((*((
double *) ( (__pyx_v_nB.data + __pyx_t_15 * __pyx_v_nB.strides[0]) ))) - (*((
double *) ( (__pyx_v_nA.data + __pyx_t_16 * __pyx_v_nA.strides[0]) )))), 2.0)));
21233 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_nB.shape[0];
21235 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_nA.shape[0];
21237 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_nC.shape[0];
21239 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_nB.shape[0];
21241 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_nA.shape[0];
21243 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_nC.shape[0];
21245 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_nB.shape[0];
21247 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_nA.shape[0];
21249 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_nB.shape[0];
21251 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_nA.shape[0];
21252 __pyx_v_height_tri = (fabs(((((((*((
double *) ( (__pyx_v_nB.data + __pyx_t_17 * __pyx_v_nB.strides[0]) ))) - (*((
double *) ( (__pyx_v_nA.data + __pyx_t_18 * __pyx_v_nA.strides[0]) )))) * (*((
double *) ( (__pyx_v_nC.data + __pyx_t_19 * __pyx_v_nC.strides[0]) )))) - (((*((
double *) ( (__pyx_v_nB.data + __pyx_t_20 * __pyx_v_nB.strides[0]) ))) - (*((
double *) ( (__pyx_v_nA.data + __pyx_t_21 * __pyx_v_nA.strides[0]) )))) * (*((
double *) ( (__pyx_v_nC.data + __pyx_t_22 * __pyx_v_nC.strides[0]) ))))) + ((*((
double *) ( (__pyx_v_nB.data + __pyx_t_23 * __pyx_v_nB.strides[0]) ))) * (*((
double *) ( (__pyx_v_nA.data + __pyx_t_24 * __pyx_v_nA.strides[0]) ))))) - ((*((
double *) ( (__pyx_v_nB.data + __pyx_t_25 * __pyx_v_nB.strides[0]) ))) * (*((
double *) ( (__pyx_v_nA.data + __pyx_t_26 * __pyx_v_nA.strides[0]) )))))) / __pyx_v_base_tri);
21261 __pyx_v_area_tri = ((0.5 * __pyx_v_base_tri) * __pyx_v_height_tri);
21270 __pyx_v_height_tetra = 0.;
21279 __pyx_t_27 = __pyx_v_eN;
21280 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_elementVolumesArray_.shape[0];
21281 *((
double *) ( (__pyx_v_elementVolumesArray_.data + __pyx_t_27 * __pyx_v_elementVolumesArray_.strides[0]) )) = (((1. / 3.) * __pyx_v_area_tri) * __pyx_v_height_tetra);
21295 __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
21296 __Pyx_WriteUnraisable(
"mprans.MeshSmoothing.cyUpdateElementVolumesTetra", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
21298 __PYX_XDEC_MEMVIEW(&__pyx_v_nA, 1);
21299 __PYX_XDEC_MEMVIEW(&__pyx_v_nB, 1);
21300 __PYX_XDEC_MEMVIEW(&__pyx_v_nC, 1);
21301 __PYX_XDEC_MEMVIEW(&__pyx_v_nD, 1);
21302 __Pyx_RefNannyFinishContext();
21313 static void __pyx_f_6mprans_13MeshSmoothing_cyUpdateElementBarycenters(__Pyx_memviewslice __pyx_v_elementBarycentersArray_, __Pyx_memviewslice __pyx_v_elementNodesArray, __Pyx_memviewslice __pyx_v_nodeArray,
int __pyx_v_nElements) {
21318 __Pyx_RefNannyDeclarations
21322 Py_ssize_t __pyx_t_4;
21323 Py_ssize_t __pyx_t_5;
21324 Py_ssize_t __pyx_t_6;
21325 Py_ssize_t __pyx_t_7;
21326 Py_ssize_t __pyx_t_8;
21327 Py_ssize_t __pyx_t_9;
21331 Py_ssize_t __pyx_t_13;
21332 Py_ssize_t __pyx_t_14;
21333 Py_ssize_t __pyx_t_15;
21334 Py_ssize_t __pyx_t_16;
21335 Py_ssize_t __pyx_t_17;
21336 Py_ssize_t __pyx_t_18;
21337 Py_ssize_t __pyx_t_19;
21338 Py_ssize_t __pyx_t_20;
21339 Py_ssize_t __pyx_t_21;
21340 Py_ssize_t __pyx_t_22;
21341 Py_ssize_t __pyx_t_23;
21342 Py_ssize_t __pyx_t_24;
21343 Py_ssize_t __pyx_t_25;
21344 Py_ssize_t __pyx_t_26;
21345 Py_ssize_t __pyx_t_27;
21346 Py_ssize_t __pyx_t_28;
21347 Py_ssize_t __pyx_t_29;
21348 Py_ssize_t __pyx_t_30;
21349 Py_ssize_t __pyx_t_31;
21350 Py_ssize_t __pyx_t_32;
21351 Py_ssize_t __pyx_t_33;
21352 Py_ssize_t __pyx_t_34;
21353 Py_ssize_t __pyx_t_35;
21354 Py_ssize_t __pyx_t_36;
21355 Py_ssize_t __pyx_t_37;
21356 Py_ssize_t __pyx_t_38;
21357 __Pyx_RefNannySetupContext(
"cyUpdateElementBarycenters", 0);
21366 __pyx_v_nNel = (__pyx_v_elementNodesArray.shape[1]);
21375 __pyx_t_1 = __pyx_v_nElements;
21376 __pyx_t_2 = __pyx_t_1;
21377 for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
21378 __pyx_v_eN = __pyx_t_3;
21387 __pyx_t_4 = __pyx_v_eN;
21389 if (__pyx_t_4 < 0) __pyx_t_4 += __pyx_v_elementBarycentersArray_.shape[0];
21390 if (__pyx_t_5 < 0) __pyx_t_5 += __pyx_v_elementBarycentersArray_.shape[1];
21391 *((
double *) ( (( (__pyx_v_elementBarycentersArray_.data + __pyx_t_4 * __pyx_v_elementBarycentersArray_.strides[0]) ) + __pyx_t_5 * __pyx_v_elementBarycentersArray_.strides[1]) )) = 0.;
21400 __pyx_t_6 = __pyx_v_eN;
21402 if (__pyx_t_6 < 0) __pyx_t_6 += __pyx_v_elementBarycentersArray_.shape[0];
21403 if (__pyx_t_7 < 0) __pyx_t_7 += __pyx_v_elementBarycentersArray_.shape[1];
21404 *((
double *) ( (( (__pyx_v_elementBarycentersArray_.data + __pyx_t_6 * __pyx_v_elementBarycentersArray_.strides[0]) ) + __pyx_t_7 * __pyx_v_elementBarycentersArray_.strides[1]) )) = 0.;
21413 __pyx_t_8 = __pyx_v_eN;
21415 if (__pyx_t_8 < 0) __pyx_t_8 += __pyx_v_elementBarycentersArray_.shape[0];
21416 if (__pyx_t_9 < 0) __pyx_t_9 += __pyx_v_elementBarycentersArray_.shape[1];
21417 *((
double *) ( (( (__pyx_v_elementBarycentersArray_.data + __pyx_t_8 * __pyx_v_elementBarycentersArray_.strides[0]) ) + __pyx_t_9 * __pyx_v_elementBarycentersArray_.strides[1]) )) = 0.;
21426 __pyx_t_10 = __pyx_v_nNel;
21427 __pyx_t_11 = __pyx_t_10;
21428 for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
21429 __pyx_v_iN = __pyx_t_12;
21438 __pyx_t_13 = __pyx_v_eN;
21439 __pyx_t_14 = __pyx_v_iN;
21440 if (__pyx_t_13 < 0) __pyx_t_13 += __pyx_v_elementNodesArray.shape[0];
21441 if (__pyx_t_14 < 0) __pyx_t_14 += __pyx_v_elementNodesArray.shape[1];
21442 __pyx_v_node = (*((
int *) ( (( (__pyx_v_elementNodesArray.data + __pyx_t_13 * __pyx_v_elementNodesArray.strides[0]) ) + __pyx_t_14 * __pyx_v_elementNodesArray.strides[1]) )));
21451 __pyx_t_15 = __pyx_v_node;
21453 if (__pyx_t_15 < 0) __pyx_t_15 += __pyx_v_nodeArray.shape[0];
21454 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_nodeArray.shape[1];
21455 __pyx_t_17 = __pyx_v_eN;
21457 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_elementBarycentersArray_.shape[0];
21458 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_elementBarycentersArray_.shape[1];
21459 *((
double *) ( (( (__pyx_v_elementBarycentersArray_.data + __pyx_t_17 * __pyx_v_elementBarycentersArray_.strides[0]) ) + __pyx_t_18 * __pyx_v_elementBarycentersArray_.strides[1]) )) += (*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_15 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_16 * __pyx_v_nodeArray.strides[1]) )));
21468 __pyx_t_19 = __pyx_v_node;
21470 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_nodeArray.shape[0];
21471 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_nodeArray.shape[1];
21472 __pyx_t_21 = __pyx_v_eN;
21474 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_elementBarycentersArray_.shape[0];
21475 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_elementBarycentersArray_.shape[1];
21476 *((
double *) ( (( (__pyx_v_elementBarycentersArray_.data + __pyx_t_21 * __pyx_v_elementBarycentersArray_.strides[0]) ) + __pyx_t_22 * __pyx_v_elementBarycentersArray_.strides[1]) )) += (*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_19 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_20 * __pyx_v_nodeArray.strides[1]) )));
21485 __pyx_t_23 = __pyx_v_node;
21487 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_nodeArray.shape[0];
21488 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_nodeArray.shape[1];
21489 __pyx_t_25 = __pyx_v_eN;
21491 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_elementBarycentersArray_.shape[0];
21492 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_elementBarycentersArray_.shape[1];
21493 *((
double *) ( (( (__pyx_v_elementBarycentersArray_.data + __pyx_t_25 * __pyx_v_elementBarycentersArray_.strides[0]) ) + __pyx_t_26 * __pyx_v_elementBarycentersArray_.strides[1]) )) += (*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_23 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_24 * __pyx_v_nodeArray.strides[1]) )));
21503 __pyx_t_27 = __pyx_v_eN;
21505 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_elementBarycentersArray_.shape[0];
21506 if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_v_elementBarycentersArray_.shape[1];
21507 __pyx_t_29 = __pyx_v_eN;
21509 if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_v_elementBarycentersArray_.shape[0];
21510 if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_v_elementBarycentersArray_.shape[1];
21511 *((
double *) ( (( (__pyx_v_elementBarycentersArray_.data + __pyx_t_29 * __pyx_v_elementBarycentersArray_.strides[0]) ) + __pyx_t_30 * __pyx_v_elementBarycentersArray_.strides[1]) )) = ((*((
double *) ( (( (__pyx_v_elementBarycentersArray_.data + __pyx_t_27 * __pyx_v_elementBarycentersArray_.strides[0]) ) + __pyx_t_28 * __pyx_v_elementBarycentersArray_.strides[1]) ))) / (__pyx_v_iN + 1));
21520 __pyx_t_31 = __pyx_v_eN;
21522 if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_v_elementBarycentersArray_.shape[0];
21523 if (__pyx_t_32 < 0) __pyx_t_32 += __pyx_v_elementBarycentersArray_.shape[1];
21524 __pyx_t_33 = __pyx_v_eN;
21526 if (__pyx_t_33 < 0) __pyx_t_33 += __pyx_v_elementBarycentersArray_.shape[0];
21527 if (__pyx_t_34 < 0) __pyx_t_34 += __pyx_v_elementBarycentersArray_.shape[1];
21528 *((
double *) ( (( (__pyx_v_elementBarycentersArray_.data + __pyx_t_33 * __pyx_v_elementBarycentersArray_.strides[0]) ) + __pyx_t_34 * __pyx_v_elementBarycentersArray_.strides[1]) )) = ((*((
double *) ( (( (__pyx_v_elementBarycentersArray_.data + __pyx_t_31 * __pyx_v_elementBarycentersArray_.strides[0]) ) + __pyx_t_32 * __pyx_v_elementBarycentersArray_.strides[1]) ))) / (__pyx_v_iN + 1));
21537 __pyx_t_35 = __pyx_v_eN;
21539 if (__pyx_t_35 < 0) __pyx_t_35 += __pyx_v_elementBarycentersArray_.shape[0];
21540 if (__pyx_t_36 < 0) __pyx_t_36 += __pyx_v_elementBarycentersArray_.shape[1];
21541 __pyx_t_37 = __pyx_v_eN;
21543 if (__pyx_t_37 < 0) __pyx_t_37 += __pyx_v_elementBarycentersArray_.shape[0];
21544 if (__pyx_t_38 < 0) __pyx_t_38 += __pyx_v_elementBarycentersArray_.shape[1];
21545 *((
double *) ( (( (__pyx_v_elementBarycentersArray_.data + __pyx_t_37 * __pyx_v_elementBarycentersArray_.strides[0]) ) + __pyx_t_38 * __pyx_v_elementBarycentersArray_.strides[1]) )) = ((*((
double *) ( (( (__pyx_v_elementBarycentersArray_.data + __pyx_t_35 * __pyx_v_elementBarycentersArray_.strides[0]) ) + __pyx_t_36 * __pyx_v_elementBarycentersArray_.strides[1]) ))) / (__pyx_v_iN + 1));
21557 __Pyx_RefNannyFinishContext();
21568 static PyArrayObject *__pyx_f_6mprans_13MeshSmoothing_cyGetCornerNodesTriangle(__Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_nodeStarArray, __Pyx_memviewslice __pyx_v_nodeStarOffsets, __Pyx_memviewslice __pyx_v_nodeMaterialTypes,
int __pyx_v_nNodes) {
21569 PyArrayObject *__pyx_v_cornerNodesArray = 0;
21570 double __pyx_v_vec[3];
21571 double __pyx_v_vec2[3];
21572 double __pyx_v_vec_dist;
21573 double __pyx_v_dot;
21575 int __pyx_v_nOffset;
21576 PyArrayObject *__pyx_r = NULL;
21577 __Pyx_RefNannyDeclarations
21578 PyObject *__pyx_t_1 = NULL;
21579 PyObject *__pyx_t_2 = NULL;
21580 PyObject *__pyx_t_3 = NULL;
21581 PyObject *__pyx_t_4 = NULL;
21582 PyObject *__pyx_t_5 = NULL;
21586 Py_ssize_t __pyx_t_9;
21588 Py_ssize_t __pyx_t_11;
21590 Py_ssize_t __pyx_t_13;
21593 Py_ssize_t __pyx_t_16;
21594 Py_ssize_t __pyx_t_17;
21596 Py_ssize_t __pyx_t_19;
21597 Py_ssize_t __pyx_t_20;
21598 Py_ssize_t __pyx_t_21;
21599 Py_ssize_t __pyx_t_22;
21600 Py_ssize_t __pyx_t_23;
21601 Py_ssize_t __pyx_t_24;
21602 Py_ssize_t __pyx_t_25;
21603 Py_ssize_t __pyx_t_26;
21604 Py_ssize_t __pyx_t_27;
21605 Py_ssize_t __pyx_t_28;
21606 Py_ssize_t __pyx_t_29;
21607 Py_ssize_t __pyx_t_30;
21608 Py_ssize_t __pyx_t_31;
21609 Py_ssize_t __pyx_t_32;
21610 Py_ssize_t __pyx_t_33;
21611 Py_ssize_t __pyx_t_34;
21612 Py_ssize_t __pyx_t_35;
21613 Py_ssize_t __pyx_t_36;
21614 Py_ssize_t __pyx_t_37;
21615 Py_ssize_t __pyx_t_38;
21616 Py_ssize_t __pyx_t_39;
21617 Py_ssize_t __pyx_t_40;
21618 Py_ssize_t __pyx_t_41;
21619 Py_ssize_t __pyx_t_42;
21620 Py_ssize_t __pyx_t_43;
21621 Py_ssize_t __pyx_t_44;
21622 Py_ssize_t __pyx_t_45;
21623 Py_ssize_t __pyx_t_46;
21624 Py_ssize_t __pyx_t_47;
21625 Py_ssize_t __pyx_t_48;
21627 __Pyx_RefNannySetupContext(
"cyGetCornerNodesTriangle", 0);
21636 __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1506, __pyx_L1_error)
21637 __Pyx_GOTREF(__pyx_t_1);
21638 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1506, __pyx_L1_error)
21639 __Pyx_GOTREF(__pyx_t_2);
21640 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21641 __pyx_t_1 = PyList_New(0);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1506, __pyx_L1_error)
21642 __Pyx_GOTREF(__pyx_t_1);
21643 __pyx_t_3 = PyTuple_New(1);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1506, __pyx_L1_error)
21644 __Pyx_GOTREF(__pyx_t_3);
21645 __Pyx_GIVEREF(__pyx_t_1);
21646 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
21648 __pyx_t_1 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1506, __pyx_L1_error)
21649 __Pyx_GOTREF(__pyx_t_1);
21650 __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1506, __pyx_L1_error)
21651 __Pyx_GOTREF(__pyx_t_4);
21652 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_int32);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1506, __pyx_L1_error)
21653 __Pyx_GOTREF(__pyx_t_5);
21654 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
21655 if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 1506, __pyx_L1_error)
21656 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
21657 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_1);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1506, __pyx_L1_error)
21658 __Pyx_GOTREF(__pyx_t_5);
21659 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21660 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
21661 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21662 if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1506, __pyx_L1_error)
21663 __pyx_v_cornerNodesArray = ((PyArrayObject *)__pyx_t_5);
21673 __pyx_t_6 = __pyx_v_nNodes;
21674 __pyx_t_7 = __pyx_t_6;
21675 for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
21676 __pyx_v_node = __pyx_t_8;
21685 __pyx_t_9 = __pyx_v_node;
21686 if (__pyx_t_9 < 0) __pyx_t_9 += __pyx_v_nodeMaterialTypes.shape[0];
21687 __pyx_t_10 = (((*((
int *) ( (__pyx_v_nodeMaterialTypes.data + __pyx_t_9 * __pyx_v_nodeMaterialTypes.strides[0]) ))) != 0) != 0);
21697 (__pyx_v_vec[0]) = 0.;
21706 (__pyx_v_vec[1]) = 0.;
21715 (__pyx_v_vec[2]) = 0.;
21724 __pyx_t_11 = (__pyx_v_node + 1);
21725 if (__pyx_t_11 < 0) __pyx_t_11 += __pyx_v_nodeStarOffsets.shape[0];
21726 __pyx_t_12 = (*((
int *) ( (__pyx_v_nodeStarOffsets.data + __pyx_t_11 * __pyx_v_nodeStarOffsets.strides[0]) )));
21735 __pyx_t_13 = __pyx_v_node;
21736 if (__pyx_t_13 < 0) __pyx_t_13 += __pyx_v_nodeStarOffsets.shape[0];
21745 __pyx_t_14 = __pyx_t_12;
21746 for (__pyx_t_15 = (*((
int *) ( (__pyx_v_nodeStarOffsets.data + __pyx_t_13 * __pyx_v_nodeStarOffsets.strides[0]) ))); __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
21755 __pyx_v_nOffset = __pyx_t_15;
21764 __pyx_t_16 = __pyx_v_nOffset;
21765 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_nodeStarArray.shape[0];
21766 __pyx_t_17 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_16 * __pyx_v_nodeStarArray.strides[0]) )));
21767 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_nodeMaterialTypes.shape[0];
21768 __pyx_t_10 = (((*((
int *) ( (__pyx_v_nodeMaterialTypes.data + __pyx_t_17 * __pyx_v_nodeMaterialTypes.strides[0]) ))) != 0) != 0);
21778 __pyx_t_18 = (((__pyx_v_vec[0]) == 0.) != 0);
21781 __pyx_t_10 = __pyx_t_18;
21782 goto __pyx_L10_bool_binop_done;
21784 __pyx_t_18 = (((__pyx_v_vec[1]) == 0.) != 0);
21787 __pyx_t_10 = __pyx_t_18;
21788 goto __pyx_L10_bool_binop_done;
21790 __pyx_t_18 = (((__pyx_v_vec[2]) == 0.) != 0);
21791 __pyx_t_10 = __pyx_t_18;
21792 __pyx_L10_bool_binop_done:;
21802 __pyx_t_19 = __pyx_v_node;
21804 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_nodeArray.shape[0];
21805 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_nodeArray.shape[1];
21806 __pyx_t_21 = __pyx_v_nOffset;
21807 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_nodeStarArray.shape[0];
21808 __pyx_t_22 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_21 * __pyx_v_nodeStarArray.strides[0]) )));
21810 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_nodeArray.shape[0];
21811 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_nodeArray.shape[1];
21812 (__pyx_v_vec[0]) = ((*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_19 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_20 * __pyx_v_nodeArray.strides[1]) ))) - (*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_22 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_23 * __pyx_v_nodeArray.strides[1]) ))));
21821 __pyx_t_24 = __pyx_v_node;
21823 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_nodeArray.shape[0];
21824 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_nodeArray.shape[1];
21825 __pyx_t_26 = __pyx_v_nOffset;
21826 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_nodeStarArray.shape[0];
21827 __pyx_t_27 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_26 * __pyx_v_nodeStarArray.strides[0]) )));
21829 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_nodeArray.shape[0];
21830 if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_v_nodeArray.shape[1];
21831 (__pyx_v_vec[1]) = ((*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_24 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_25 * __pyx_v_nodeArray.strides[1]) ))) - (*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_27 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_28 * __pyx_v_nodeArray.strides[1]) ))));
21840 __pyx_t_29 = __pyx_v_node;
21842 if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_v_nodeArray.shape[0];
21843 if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_v_nodeArray.shape[1];
21844 __pyx_t_31 = __pyx_v_nOffset;
21845 if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_v_nodeStarArray.shape[0];
21846 __pyx_t_32 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_31 * __pyx_v_nodeStarArray.strides[0]) )));
21848 if (__pyx_t_32 < 0) __pyx_t_32 += __pyx_v_nodeArray.shape[0];
21849 if (__pyx_t_33 < 0) __pyx_t_33 += __pyx_v_nodeArray.shape[1];
21850 (__pyx_v_vec[2]) = ((*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_29 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_30 * __pyx_v_nodeArray.strides[1]) ))) - (*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_32 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_33 * __pyx_v_nodeArray.strides[1]) ))));
21859 __pyx_v_vec_dist = sqrt(((pow((__pyx_v_vec[0]), 2.0) + pow((__pyx_v_vec[1]), 2.0)) + pow((__pyx_v_vec[2]), 2.0)));
21868 (__pyx_v_vec[0]) = ((__pyx_v_vec[0]) / __pyx_v_vec_dist);
21877 (__pyx_v_vec[1]) = ((__pyx_v_vec[1]) / __pyx_v_vec_dist);
21886 (__pyx_v_vec[2]) = ((__pyx_v_vec[2]) / __pyx_v_vec_dist);
21906 __pyx_t_34 = __pyx_v_node;
21908 if (__pyx_t_34 < 0) __pyx_t_34 += __pyx_v_nodeArray.shape[0];
21909 if (__pyx_t_35 < 0) __pyx_t_35 += __pyx_v_nodeArray.shape[1];
21910 __pyx_t_36 = __pyx_v_nOffset;
21911 if (__pyx_t_36 < 0) __pyx_t_36 += __pyx_v_nodeStarArray.shape[0];
21912 __pyx_t_37 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_36 * __pyx_v_nodeStarArray.strides[0]) )));
21914 if (__pyx_t_37 < 0) __pyx_t_37 += __pyx_v_nodeArray.shape[0];
21915 if (__pyx_t_38 < 0) __pyx_t_38 += __pyx_v_nodeArray.shape[1];
21916 (__pyx_v_vec2[0]) = ((*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_34 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_35 * __pyx_v_nodeArray.strides[1]) ))) - (*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_37 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_38 * __pyx_v_nodeArray.strides[1]) ))));
21925 __pyx_t_39 = __pyx_v_node;
21927 if (__pyx_t_39 < 0) __pyx_t_39 += __pyx_v_nodeArray.shape[0];
21928 if (__pyx_t_40 < 0) __pyx_t_40 += __pyx_v_nodeArray.shape[1];
21929 __pyx_t_41 = __pyx_v_nOffset;
21930 if (__pyx_t_41 < 0) __pyx_t_41 += __pyx_v_nodeStarArray.shape[0];
21931 __pyx_t_42 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_41 * __pyx_v_nodeStarArray.strides[0]) )));
21933 if (__pyx_t_42 < 0) __pyx_t_42 += __pyx_v_nodeArray.shape[0];
21934 if (__pyx_t_43 < 0) __pyx_t_43 += __pyx_v_nodeArray.shape[1];
21935 (__pyx_v_vec2[1]) = ((*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_39 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_40 * __pyx_v_nodeArray.strides[1]) ))) - (*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_42 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_43 * __pyx_v_nodeArray.strides[1]) ))));
21944 __pyx_t_44 = __pyx_v_node;
21946 if (__pyx_t_44 < 0) __pyx_t_44 += __pyx_v_nodeArray.shape[0];
21947 if (__pyx_t_45 < 0) __pyx_t_45 += __pyx_v_nodeArray.shape[1];
21948 __pyx_t_46 = __pyx_v_nOffset;
21949 if (__pyx_t_46 < 0) __pyx_t_46 += __pyx_v_nodeStarArray.shape[0];
21950 __pyx_t_47 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_46 * __pyx_v_nodeStarArray.strides[0]) )));
21952 if (__pyx_t_47 < 0) __pyx_t_47 += __pyx_v_nodeArray.shape[0];
21953 if (__pyx_t_48 < 0) __pyx_t_48 += __pyx_v_nodeArray.shape[1];
21954 (__pyx_v_vec2[2]) = ((*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_44 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_45 * __pyx_v_nodeArray.strides[1]) ))) - (*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_47 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_48 * __pyx_v_nodeArray.strides[1]) ))));
21963 __pyx_v_vec_dist = sqrt(((pow((__pyx_v_vec2[0]), 2.0) + pow((__pyx_v_vec2[1]), 2.0)) + pow((__pyx_v_vec2[2]), 2.0)));
21972 (__pyx_v_vec2[0]) = ((__pyx_v_vec2[0]) / __pyx_v_vec_dist);
21981 (__pyx_v_vec2[1]) = ((__pyx_v_vec2[1]) / __pyx_v_vec_dist);
21990 (__pyx_v_vec2[2]) = ((__pyx_v_vec2[2]) / __pyx_v_vec_dist);
21999 __pyx_v_dot = ((((__pyx_v_vec[0]) * (__pyx_v_vec2[0])) + ((__pyx_v_vec[1]) * (__pyx_v_vec2[1]))) + ((__pyx_v_vec[2]) * (__pyx_v_vec2[2])));
22008 __pyx_t_18 = ((__pyx_v_dot == 1.) != 0);
22011 __pyx_t_10 = __pyx_t_18;
22012 goto __pyx_L14_bool_binop_done;
22014 __pyx_t_18 = ((__pyx_v_dot == -1.) != 0);
22015 __pyx_t_10 = __pyx_t_18;
22016 __pyx_L14_bool_binop_done:;
22046 __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1542, __pyx_L1_error)
22047 __Pyx_GOTREF(__pyx_t_1);
22048 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_append);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1542, __pyx_L1_error)
22049 __Pyx_GOTREF(__pyx_t_3);
22050 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22051 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_node);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1542, __pyx_L1_error)
22052 __Pyx_GOTREF(__pyx_t_1);
22055 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
22056 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
22057 if (likely(__pyx_t_2)) {
22058 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_3);
22059 __Pyx_INCREF(__pyx_t_2);
22060 __Pyx_INCREF(
function);
22061 __Pyx_DECREF_SET(__pyx_t_3,
function);
22065 #if CYTHON_FAST_PYCALL 22066 if (PyFunction_Check(__pyx_t_3)) {
22067 PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)__pyx_v_cornerNodesArray), __pyx_t_1};
22068 __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_49, 2+__pyx_t_49);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1542, __pyx_L1_error)
22069 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
22070 __Pyx_GOTREF(__pyx_t_5);
22071 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22074 #if CYTHON_FAST_PYCCALL 22075 if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
22076 PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)__pyx_v_cornerNodesArray), __pyx_t_1};
22077 __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_49, 2+__pyx_t_49);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1542, __pyx_L1_error)
22078 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
22079 __Pyx_GOTREF(__pyx_t_5);
22080 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22084 __pyx_t_4 = PyTuple_New(2+__pyx_t_49);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1542, __pyx_L1_error)
22085 __Pyx_GOTREF(__pyx_t_4);
22087 __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL;
22089 __Pyx_INCREF(((PyObject *)__pyx_v_cornerNodesArray));
22090 __Pyx_GIVEREF(((PyObject *)__pyx_v_cornerNodesArray));
22091 PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_49, ((PyObject *)__pyx_v_cornerNodesArray));
22092 __Pyx_GIVEREF(__pyx_t_1);
22093 PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_49, __pyx_t_1);
22095 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1542, __pyx_L1_error)
22096 __Pyx_GOTREF(__pyx_t_5);
22097 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
22099 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
22100 if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1542, __pyx_L1_error)
22101 __Pyx_DECREF_SET(__pyx_v_cornerNodesArray, ((PyArrayObject *)__pyx_t_5));
22135 __Pyx_XDECREF(((PyObject *)__pyx_r));
22136 __Pyx_INCREF(((PyObject *)__pyx_v_cornerNodesArray));
22137 __pyx_r = __pyx_v_cornerNodesArray;
22150 __Pyx_XDECREF(__pyx_t_1);
22151 __Pyx_XDECREF(__pyx_t_2);
22152 __Pyx_XDECREF(__pyx_t_3);
22153 __Pyx_XDECREF(__pyx_t_4);
22154 __Pyx_XDECREF(__pyx_t_5);
22155 __Pyx_AddTraceback(
"mprans.MeshSmoothing.cyGetCornerNodesTriangle", __pyx_clineno, __pyx_lineno, __pyx_filename);
22158 __Pyx_XDECREF((PyObject *)__pyx_v_cornerNodesArray);
22159 __Pyx_XGIVEREF((PyObject *)__pyx_r);
22160 __Pyx_RefNannyFinishContext();
22172 static __Pyx_memviewslice __pyx_f_6mprans_13MeshSmoothing_cyCheckOwnedVariable(
int __pyx_v_variable_nb_local,
int __pyx_v_rank,
int __pyx_v_nVariables_owned, __Pyx_memviewslice __pyx_v_variableNumbering_subdomain2global, __Pyx_memviewslice __pyx_v_variableOffsets_subdomain_owned) {
22173 int __pyx_v_nSubdomains;
22174 int __pyx_v_variable_nb_global;
22175 int __pyx_v_new_variable_nb_local;
22176 int __pyx_v_new_rank;
22178 int __pyx_v_result[2];
22179 __Pyx_memviewslice __pyx_r = { 0, 0, { 0 }, { 0 }, { 0 } };
22180 __Pyx_RefNannyDeclarations
22183 Py_ssize_t __pyx_t_3;
22184 Py_ssize_t __pyx_t_4;
22185 Py_ssize_t __pyx_t_5;
22190 Py_ssize_t __pyx_t_10;
22191 Py_ssize_t __pyx_t_11;
22192 struct __pyx_array_obj *__pyx_t_12 = NULL;
22193 PyObject *__pyx_t_13 = NULL;
22194 PyObject *__pyx_t_14 = NULL;
22195 __Pyx_memviewslice __pyx_t_15 = { 0, 0, { 0 }, { 0 }, { 0 } };
22196 __Pyx_RefNannySetupContext(
"cyCheckOwnedVariable", 0);
22205 __pyx_v_nSubdomains = ((__pyx_v_variableOffsets_subdomain_owned.shape[0]) - 1);
22214 __pyx_v_new_rank = -2;
22223 __pyx_t_1[0] = -1000;
22224 __pyx_t_1[1] = -1000;
22225 memcpy(&(__pyx_v_result[0]), __pyx_t_1,
sizeof(__pyx_v_result[0]) * (2));
22234 (__pyx_v_result[0]) = __pyx_v_variable_nb_local;
22243 (__pyx_v_result[1]) = __pyx_v_new_rank;
22252 __pyx_t_2 = ((__pyx_v_variable_nb_local >= __pyx_v_nVariables_owned) != 0);
22262 __pyx_t_3 = __pyx_v_variable_nb_local;
22263 if (__pyx_t_3 < 0) __pyx_t_3 += __pyx_v_variableNumbering_subdomain2global.shape[0];
22264 __pyx_v_variable_nb_global = (*((
int *) ( (__pyx_v_variableNumbering_subdomain2global.data + __pyx_t_3 * __pyx_v_variableNumbering_subdomain2global.strides[0]) )));
22273 __pyx_t_4 = __pyx_v_rank;
22274 if (__pyx_t_4 < 0) __pyx_t_4 += __pyx_v_variableOffsets_subdomain_owned.shape[0];
22275 __pyx_t_2 = ((*((
int *) ( (__pyx_v_variableOffsets_subdomain_owned.data + __pyx_t_4 * __pyx_v_variableOffsets_subdomain_owned.strides[0]) ))) <= __pyx_v_variable_nb_global);
22277 __pyx_t_5 = (__pyx_v_rank + 1);
22278 if (__pyx_t_5 < 0) __pyx_t_5 += __pyx_v_variableOffsets_subdomain_owned.shape[0];
22279 __pyx_t_2 = (__pyx_v_variable_nb_global < (*((
int *) ( (__pyx_v_variableOffsets_subdomain_owned.data + __pyx_t_5 * __pyx_v_variableOffsets_subdomain_owned.strides[0]) ))));
22281 __pyx_t_6 = ((!(__pyx_t_2 != 0)) != 0);
22291 __pyx_t_7 = (__pyx_v_nSubdomains + 1);
22292 __pyx_t_8 = __pyx_t_7;
22293 for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
22294 __pyx_v_i = __pyx_t_9;
22303 __pyx_t_10 = __pyx_v_i;
22304 if (__pyx_t_10 < 0) __pyx_t_10 += __pyx_v_variableOffsets_subdomain_owned.shape[0];
22305 __pyx_t_6 = (((*((
int *) ( (__pyx_v_variableOffsets_subdomain_owned.data + __pyx_t_10 * __pyx_v_variableOffsets_subdomain_owned.strides[0]) ))) > __pyx_v_variable_nb_global) != 0);
22315 __pyx_t_6 = ((__pyx_v_new_rank == -2
L) != 0);
22325 __pyx_v_new_rank = (__pyx_v_i - 1);
22371 __pyx_t_6 = ((__pyx_v_new_rank >= 0) != 0);
22381 __pyx_t_11 = __pyx_v_new_rank;
22382 if (__pyx_t_11 < 0) __pyx_t_11 += __pyx_v_variableOffsets_subdomain_owned.shape[0];
22383 __pyx_v_new_variable_nb_local = (__pyx_v_variable_nb_global - (*((
int *) ( (__pyx_v_variableOffsets_subdomain_owned.data + __pyx_t_11 * __pyx_v_variableOffsets_subdomain_owned.strides[0]) ))));
22403 __pyx_v_new_rank = __pyx_v_rank;
22412 __pyx_v_new_variable_nb_local = __pyx_v_variable_nb_local;
22423 (__pyx_v_result[0]) = __pyx_v_new_variable_nb_local;
22432 (__pyx_v_result[1]) = __pyx_v_new_rank;
22441 __pyx_t_14 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_int);
22442 __pyx_t_13 = Py_BuildValue((
char*)
"(" __PYX_BUILD_PY_SSIZE_T
")", ((Py_ssize_t)2));
22443 if (unlikely(!__pyx_t_14 || !__pyx_t_13 || !PyBytes_AsString(__pyx_t_14))) __PYX_ERR(0, 1576, __pyx_L1_error)
22444 __Pyx_GOTREF(__pyx_t_14);
22445 __Pyx_GOTREF(__pyx_t_13);
22446 __pyx_t_12 = __pyx_array_new(__pyx_t_13,
sizeof(
int), PyBytes_AS_STRING(__pyx_t_14), (
char *)
"fortran", (
char *) __pyx_v_result);
22447 if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1576, __pyx_L1_error)
22448 __Pyx_GOTREF(__pyx_t_12);
22449 __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
22450 __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
22451 __pyx_t_15 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(((PyObject *)__pyx_t_12), PyBUF_WRITABLE);
if (unlikely(!__pyx_t_15.memview)) __PYX_ERR(0, 1576, __pyx_L1_error)
22452 __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
22453 __pyx_r = __pyx_t_15;
22454 __pyx_t_15.memview = NULL;
22455 __pyx_t_15.data = NULL;
22468 __Pyx_XDECREF(((PyObject *)__pyx_t_12));
22469 __Pyx_XDECREF(__pyx_t_13);
22470 __Pyx_XDECREF(__pyx_t_14);
22471 __PYX_XDEC_MEMVIEW(&__pyx_t_15, 1);
22472 __pyx_r.data = NULL;
22473 __pyx_r.memview = NULL;
22474 __Pyx_AddTraceback(
"mprans.MeshSmoothing.cyCheckOwnedVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
22477 if (unlikely(!__pyx_r.memview)) {
22478 PyErr_SetString(PyExc_TypeError,
"Memoryview return value is not initialized");
22481 __Pyx_RefNannyFinishContext();
22493 static void __pyx_f_6mprans_13MeshSmoothing_cyFindBoundaryDirectionTriangle(__Pyx_memviewslice __pyx_v_dir_,
int __pyx_v_node, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_nodeStarOffsets, __Pyx_memviewslice __pyx_v_nodeStarArray, __Pyx_memviewslice __pyx_v_nodeMaterialTypes) {
22494 double __pyx_v_dir_dist;
22495 int __pyx_v_nOffset;
22496 __Pyx_RefNannyDeclarations
22497 Py_ssize_t __pyx_t_1;
22499 Py_ssize_t __pyx_t_3;
22502 Py_ssize_t __pyx_t_6;
22503 Py_ssize_t __pyx_t_7;
22505 Py_ssize_t __pyx_t_9;
22506 Py_ssize_t __pyx_t_10;
22507 Py_ssize_t __pyx_t_11;
22508 Py_ssize_t __pyx_t_12;
22509 Py_ssize_t __pyx_t_13;
22510 Py_ssize_t __pyx_t_14;
22511 Py_ssize_t __pyx_t_15;
22512 Py_ssize_t __pyx_t_16;
22513 Py_ssize_t __pyx_t_17;
22514 Py_ssize_t __pyx_t_18;
22515 Py_ssize_t __pyx_t_19;
22516 Py_ssize_t __pyx_t_20;
22517 Py_ssize_t __pyx_t_21;
22518 Py_ssize_t __pyx_t_22;
22519 Py_ssize_t __pyx_t_23;
22520 Py_ssize_t __pyx_t_24;
22521 Py_ssize_t __pyx_t_25;
22522 Py_ssize_t __pyx_t_26;
22523 Py_ssize_t __pyx_t_27;
22524 Py_ssize_t __pyx_t_28;
22525 Py_ssize_t __pyx_t_29;
22526 Py_ssize_t __pyx_t_30;
22527 Py_ssize_t __pyx_t_31;
22528 Py_ssize_t __pyx_t_32;
22529 Py_ssize_t __pyx_t_33;
22530 Py_ssize_t __pyx_t_34;
22531 Py_ssize_t __pyx_t_35;
22532 __Pyx_RefNannySetupContext(
"cyFindBoundaryDirectionTriangle", 0);
22541 __pyx_t_1 = (__pyx_v_node + 1);
22542 if (__pyx_t_1 < 0) __pyx_t_1 += __pyx_v_nodeStarOffsets.shape[0];
22543 __pyx_t_2 = (*((
int *) ( (__pyx_v_nodeStarOffsets.data + __pyx_t_1 * __pyx_v_nodeStarOffsets.strides[0]) )));
22552 __pyx_t_3 = __pyx_v_node;
22553 if (__pyx_t_3 < 0) __pyx_t_3 += __pyx_v_nodeStarOffsets.shape[0];
22562 __pyx_t_4 = __pyx_t_2;
22563 for (__pyx_t_5 = (*((
int *) ( (__pyx_v_nodeStarOffsets.data + __pyx_t_3 * __pyx_v_nodeStarOffsets.strides[0]) ))); __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
22572 __pyx_v_nOffset = __pyx_t_5;
22581 __pyx_t_6 = __pyx_v_nOffset;
22582 if (__pyx_t_6 < 0) __pyx_t_6 += __pyx_v_nodeStarArray.shape[0];
22583 __pyx_t_7 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_6 * __pyx_v_nodeStarArray.strides[0]) )));
22584 if (__pyx_t_7 < 0) __pyx_t_7 += __pyx_v_nodeMaterialTypes.shape[0];
22585 __pyx_t_8 = (((*((
int *) ( (__pyx_v_nodeMaterialTypes.data + __pyx_t_7 * __pyx_v_nodeMaterialTypes.strides[0]) ))) != 0) != 0);
22595 __pyx_t_9 = __pyx_v_node;
22597 if (__pyx_t_9 < 0) __pyx_t_9 += __pyx_v_nodeArray.shape[0];
22598 if (__pyx_t_10 < 0) __pyx_t_10 += __pyx_v_nodeArray.shape[1];
22599 __pyx_t_11 = __pyx_v_nOffset;
22600 if (__pyx_t_11 < 0) __pyx_t_11 += __pyx_v_nodeStarArray.shape[0];
22601 __pyx_t_12 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_11 * __pyx_v_nodeStarArray.strides[0]) )));
22603 if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_v_nodeArray.shape[0];
22604 if (__pyx_t_13 < 0) __pyx_t_13 += __pyx_v_nodeArray.shape[1];
22606 if (__pyx_t_14 < 0) __pyx_t_14 += __pyx_v_dir_.shape[0];
22607 *((
double *) ( (__pyx_v_dir_.data + __pyx_t_14 * __pyx_v_dir_.strides[0]) )) = ((*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_9 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_10 * __pyx_v_nodeArray.strides[1]) ))) - (*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_12 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_13 * __pyx_v_nodeArray.strides[1]) ))));
22616 __pyx_t_15 = __pyx_v_node;
22618 if (__pyx_t_15 < 0) __pyx_t_15 += __pyx_v_nodeArray.shape[0];
22619 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_nodeArray.shape[1];
22620 __pyx_t_17 = __pyx_v_nOffset;
22621 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_nodeStarArray.shape[0];
22622 __pyx_t_18 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_17 * __pyx_v_nodeStarArray.strides[0]) )));
22624 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_nodeArray.shape[0];
22625 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_nodeArray.shape[1];
22627 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_dir_.shape[0];
22628 *((
double *) ( (__pyx_v_dir_.data + __pyx_t_20 * __pyx_v_dir_.strides[0]) )) = ((*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_15 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_16 * __pyx_v_nodeArray.strides[1]) ))) - (*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_18 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_19 * __pyx_v_nodeArray.strides[1]) ))));
22637 __pyx_t_21 = __pyx_v_node;
22639 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_nodeArray.shape[0];
22640 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_nodeArray.shape[1];
22641 __pyx_t_23 = __pyx_v_nOffset;
22642 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_nodeStarArray.shape[0];
22643 __pyx_t_24 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_23 * __pyx_v_nodeStarArray.strides[0]) )));
22645 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_nodeArray.shape[0];
22646 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_nodeArray.shape[1];
22648 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_dir_.shape[0];
22649 *((
double *) ( (__pyx_v_dir_.data + __pyx_t_26 * __pyx_v_dir_.strides[0]) )) = ((*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_21 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_22 * __pyx_v_nodeArray.strides[1]) ))) - (*((
double *) ( (( (__pyx_v_nodeArray.data + __pyx_t_24 * __pyx_v_nodeArray.strides[0]) ) + __pyx_t_25 * __pyx_v_nodeArray.strides[1]) ))));
22659 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_dir_.shape[0];
22661 if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_v_dir_.shape[0];
22663 if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_v_dir_.shape[0];
22664 __pyx_v_dir_dist = sqrt(((pow((*((
double *) ( (__pyx_v_dir_.data + __pyx_t_27 * __pyx_v_dir_.strides[0]) ))), 2.0) + pow((*((
double *) ( (__pyx_v_dir_.data + __pyx_t_28 * __pyx_v_dir_.strides[0]) ))), 2.0)) + pow((*((
double *) ( (__pyx_v_dir_.data + __pyx_t_29 * __pyx_v_dir_.strides[0]) ))), 2.0)));
22674 if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_v_dir_.shape[0];
22676 if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_v_dir_.shape[0];
22677 *((
double *) ( (__pyx_v_dir_.data + __pyx_t_31 * __pyx_v_dir_.strides[0]) )) = (fabs((*((
double *) ( (__pyx_v_dir_.data + __pyx_t_30 * __pyx_v_dir_.strides[0]) )))) / __pyx_v_dir_dist);
22687 if (__pyx_t_32 < 0) __pyx_t_32 += __pyx_v_dir_.shape[0];
22689 if (__pyx_t_33 < 0) __pyx_t_33 += __pyx_v_dir_.shape[0];
22690 *((
double *) ( (__pyx_v_dir_.data + __pyx_t_33 * __pyx_v_dir_.strides[0]) )) = (fabs((*((
double *) ( (__pyx_v_dir_.data + __pyx_t_32 * __pyx_v_dir_.strides[0]) )))) / __pyx_v_dir_dist);
22700 if (__pyx_t_34 < 0) __pyx_t_34 += __pyx_v_dir_.shape[0];
22702 if (__pyx_t_35 < 0) __pyx_t_35 += __pyx_v_dir_.shape[0];
22703 *((
double *) ( (__pyx_v_dir_.data + __pyx_t_35 * __pyx_v_dir_.strides[0]) )) = (fabs((*((
double *) ( (__pyx_v_dir_.data + __pyx_t_34 * __pyx_v_dir_.strides[0]) )))) / __pyx_v_dir_dist);
22724 __Pyx_RefNannyFinishContext();
22735 static void __pyx_f_6mprans_13MeshSmoothing_cyFindBoundaryDirectionTetra(__Pyx_memviewslice __pyx_v_dir_,
int __pyx_v_node, __Pyx_memviewslice __pyx_v_nodeArray, __Pyx_memviewslice __pyx_v_nodeStarOffsets, __Pyx_memviewslice __pyx_v_nodeStarArray, __Pyx_memviewslice __pyx_v_nodeMaterialTypes) {
22736 double __pyx_v_U[3];
22737 double __pyx_v_V[3];
22738 double __pyx_v_dir_dist;
22739 __Pyx_memviewslice __pyx_v_node0 = { 0, 0, { 0 }, { 0 }, { 0 } };
22740 __Pyx_memviewslice __pyx_v_node1 = { 0, 0, { 0 }, { 0 }, { 0 } };
22741 __Pyx_memviewslice __pyx_v_node2 = { 0, 0, { 0 }, { 0 }, { 0 } };
22742 double __pyx_v_nNode;
22743 int __pyx_v_nOffset;
22744 __Pyx_RefNannyDeclarations
22745 Py_ssize_t __pyx_t_1;
22747 Py_ssize_t __pyx_t_3;
22750 Py_ssize_t __pyx_t_6;
22751 Py_ssize_t __pyx_t_7;
22753 Py_ssize_t __pyx_t_9;
22754 __Pyx_memviewslice __pyx_t_10 = { 0, 0, { 0 }, { 0 }, { 0 } };
22755 Py_ssize_t __pyx_t_11;
22756 Py_ssize_t __pyx_t_12;
22757 Py_ssize_t __pyx_t_13;
22758 Py_ssize_t __pyx_t_14;
22759 Py_ssize_t __pyx_t_15;
22760 Py_ssize_t __pyx_t_16;
22761 Py_ssize_t __pyx_t_17;
22762 Py_ssize_t __pyx_t_18;
22763 Py_ssize_t __pyx_t_19;
22764 Py_ssize_t __pyx_t_20;
22765 Py_ssize_t __pyx_t_21;
22766 Py_ssize_t __pyx_t_22;
22767 Py_ssize_t __pyx_t_23;
22768 Py_ssize_t __pyx_t_24;
22769 Py_ssize_t __pyx_t_25;
22770 Py_ssize_t __pyx_t_26;
22771 Py_ssize_t __pyx_t_27;
22772 Py_ssize_t __pyx_t_28;
22773 Py_ssize_t __pyx_t_29;
22774 Py_ssize_t __pyx_t_30;
22775 Py_ssize_t __pyx_t_31;
22776 Py_ssize_t __pyx_t_32;
22777 Py_ssize_t __pyx_t_33;
22778 Py_ssize_t __pyx_t_34;
22779 Py_ssize_t __pyx_t_35;
22780 Py_ssize_t __pyx_t_36;
22781 Py_ssize_t __pyx_t_37;
22782 Py_ssize_t __pyx_t_38;
22783 Py_ssize_t __pyx_t_39;
22784 __Pyx_RefNannySetupContext(
"cyFindBoundaryDirectionTetra", 0);
22793 __pyx_v_nNode = 0.0;
22802 __pyx_t_1 = (__pyx_v_node + 1);
22803 if (__pyx_t_1 < 0) __pyx_t_1 += __pyx_v_nodeStarOffsets.shape[0];
22804 __pyx_t_2 = (*((
int *) ( (__pyx_v_nodeStarOffsets.data + __pyx_t_1 * __pyx_v_nodeStarOffsets.strides[0]) )));
22813 __pyx_t_3 = __pyx_v_node;
22814 if (__pyx_t_3 < 0) __pyx_t_3 += __pyx_v_nodeStarOffsets.shape[0];
22823 __pyx_t_4 = __pyx_t_2;
22824 for (__pyx_t_5 = (*((
int *) ( (__pyx_v_nodeStarOffsets.data + __pyx_t_3 * __pyx_v_nodeStarOffsets.strides[0]) ))); __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
22833 __pyx_v_nOffset = __pyx_t_5;
22842 __pyx_t_6 = __pyx_v_nOffset;
22843 if (__pyx_t_6 < 0) __pyx_t_6 += __pyx_v_nodeStarArray.shape[0];
22844 __pyx_t_7 = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_6 * __pyx_v_nodeStarArray.strides[0]) )));
22845 if (__pyx_t_7 < 0) __pyx_t_7 += __pyx_v_nodeMaterialTypes.shape[0];
22846 __pyx_t_8 = (((*((
int *) ( (__pyx_v_nodeMaterialTypes.data + __pyx_t_7 * __pyx_v_nodeMaterialTypes.strides[0]) ))) != 0) != 0);
22856 __pyx_v_nNode = (__pyx_v_nNode + 1.0);
22865 __pyx_t_8 = ((__pyx_v_nNode == 1.0) != 0);
22875 __pyx_t_9 = __pyx_v_nOffset;
22876 if (__pyx_t_9 < 0) __pyx_t_9 += __pyx_v_nodeStarArray.shape[0];
22877 __pyx_t_10.data = __pyx_v_nodeArray.data;
22878 __pyx_t_10.memview = __pyx_v_nodeArray.memview;
22879 __PYX_INC_MEMVIEW(&__pyx_t_10, 0);
22881 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_9 * __pyx_v_nodeStarArray.strides[0]) )));
22882 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
22883 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
22884 if (__pyx_tmp_idx < 0)
22885 __pyx_tmp_idx += __pyx_tmp_shape;
22886 if ((0)) __PYX_ERR(0, 1622, __pyx_L1_error)
22887 __pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
22890 __pyx_t_10.shape[0] = __pyx_v_nodeArray.shape[1];
22891 __pyx_t_10.strides[0] = __pyx_v_nodeArray.strides[1];
22892 __pyx_t_10.suboffsets[0] = -1;
22894 __PYX_XDEC_MEMVIEW(&__pyx_v_node0, 1);
22895 __pyx_v_node0 = __pyx_t_10;
22896 __pyx_t_10.memview = NULL;
22897 __pyx_t_10.data = NULL;
22916 __pyx_t_8 = ((__pyx_v_nNode == 2.0) != 0);
22926 __pyx_t_11 = __pyx_v_nOffset;
22927 if (__pyx_t_11 < 0) __pyx_t_11 += __pyx_v_nodeStarArray.shape[0];
22928 __pyx_t_10.data = __pyx_v_nodeArray.data;
22929 __pyx_t_10.memview = __pyx_v_nodeArray.memview;
22930 __PYX_INC_MEMVIEW(&__pyx_t_10, 0);
22932 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_11 * __pyx_v_nodeStarArray.strides[0]) )));
22933 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
22934 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
22935 if (__pyx_tmp_idx < 0)
22936 __pyx_tmp_idx += __pyx_tmp_shape;
22937 if ((0)) __PYX_ERR(0, 1624, __pyx_L1_error)
22938 __pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
22941 __pyx_t_10.shape[0] = __pyx_v_nodeArray.shape[1];
22942 __pyx_t_10.strides[0] = __pyx_v_nodeArray.strides[1];
22943 __pyx_t_10.suboffsets[0] = -1;
22945 __PYX_XDEC_MEMVIEW(&__pyx_v_node1, 1);
22946 __pyx_v_node1 = __pyx_t_10;
22947 __pyx_t_10.memview = NULL;
22948 __pyx_t_10.data = NULL;
22967 __pyx_t_8 = ((__pyx_v_nNode == 3.0) != 0);
22977 __pyx_t_12 = __pyx_v_nOffset;
22978 if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_v_nodeStarArray.shape[0];
22979 __pyx_t_10.data = __pyx_v_nodeArray.data;
22980 __pyx_t_10.memview = __pyx_v_nodeArray.memview;
22981 __PYX_INC_MEMVIEW(&__pyx_t_10, 0);
22983 Py_ssize_t __pyx_tmp_idx = (*((
int *) ( (__pyx_v_nodeStarArray.data + __pyx_t_12 * __pyx_v_nodeStarArray.strides[0]) )));
22984 Py_ssize_t __pyx_tmp_shape = __pyx_v_nodeArray.shape[0];
22985 Py_ssize_t __pyx_tmp_stride = __pyx_v_nodeArray.strides[0];
22986 if (__pyx_tmp_idx < 0)
22987 __pyx_tmp_idx += __pyx_tmp_shape;
22988 if ((0)) __PYX_ERR(0, 1626, __pyx_L1_error)
22989 __pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
22992 __pyx_t_10.shape[0] = __pyx_v_nodeArray.shape[1];
22993 __pyx_t_10.strides[0] = __pyx_v_nodeArray.strides[1];
22994 __pyx_t_10.suboffsets[0] = -1;
22996 __PYX_XDEC_MEMVIEW(&__pyx_v_node2, 1);
22997 __pyx_v_node2 = __pyx_t_10;
22998 __pyx_t_10.memview = NULL;
22999 __pyx_t_10.data = NULL;
23028 #ifndef CYTHON_WITHOUT_ASSERTIONS 23029 if (unlikely(!Py_OptimizeFlag)) {
23030 if (unlikely(!((__pyx_v_nNode > 3.0) != 0))) {
23031 PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_error_looking_for_dir);
23032 __PYX_ERR(0, 1627, __pyx_L1_error)
23045 if (__pyx_t_13 < 0) __pyx_t_13 += __pyx_v_node1.shape[0];
23047 if (__pyx_t_14 < 0) __pyx_t_14 += __pyx_v_node0.shape[0];
23048 (__pyx_v_U[0]) = ((*((
double *) ( (__pyx_v_node1.data + __pyx_t_13 * __pyx_v_node1.strides[0]) ))) - (*((
double *) ( (__pyx_v_node0.data + __pyx_t_14 * __pyx_v_node0.strides[0]) ))));
23058 if (__pyx_t_15 < 0) __pyx_t_15 += __pyx_v_node1.shape[0];
23060 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_node0.shape[0];
23061 (__pyx_v_U[1]) = ((*((
double *) ( (__pyx_v_node1.data + __pyx_t_15 * __pyx_v_node1.strides[0]) ))) - (*((
double *) ( (__pyx_v_node0.data + __pyx_t_16 * __pyx_v_node0.strides[0]) ))));
23071 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_node1.shape[0];
23073 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_node0.shape[0];
23074 (__pyx_v_U[2]) = ((*((
double *) ( (__pyx_v_node1.data + __pyx_t_17 * __pyx_v_node1.strides[0]) ))) - (*((
double *) ( (__pyx_v_node0.data + __pyx_t_18 * __pyx_v_node0.strides[0]) ))));
23084 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_node2.shape[0];
23086 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_node0.shape[0];
23087 (__pyx_v_V[0]) = ((*((
double *) ( (__pyx_v_node2.data + __pyx_t_19 * __pyx_v_node2.strides[0]) ))) - (*((
double *) ( (__pyx_v_node0.data + __pyx_t_20 * __pyx_v_node0.strides[0]) ))));
23097 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_node2.shape[0];
23099 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_node0.shape[0];
23100 (__pyx_v_V[1]) = ((*((
double *) ( (__pyx_v_node2.data + __pyx_t_21 * __pyx_v_node2.strides[0]) ))) - (*((
double *) ( (__pyx_v_node0.data + __pyx_t_22 * __pyx_v_node0.strides[0]) ))));
23110 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_node2.shape[0];
23112 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_node0.shape[0];
23113 (__pyx_v_V[2]) = ((*((
double *) ( (__pyx_v_node2.data + __pyx_t_23 * __pyx_v_node2.strides[0]) ))) - (*((
double *) ( (__pyx_v_node0.data + __pyx_t_24 * __pyx_v_node0.strides[0]) ))));
23123 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_dir_.shape[0];
23124 *((
double *) ( (__pyx_v_dir_.data + __pyx_t_25 * __pyx_v_dir_.strides[0]) )) = (((__pyx_v_U[1]) * (__pyx_v_V[2])) - ((__pyx_v_U[2]) * (__pyx_v_V[1])));
23134 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_dir_.shape[0];
23135 *((
double *) ( (__pyx_v_dir_.data + __pyx_t_26 * __pyx_v_dir_.strides[0]) )) = (((__pyx_v_U[2]) * (__pyx_v_V[0])) - ((__pyx_v_U[0]) * (__pyx_v_V[2])));
23145 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_dir_.shape[0];
23146 *((
double *) ( (__pyx_v_dir_.data + __pyx_t_27 * __pyx_v_dir_.strides[0]) )) = (((__pyx_v_U[0]) * (__pyx_v_V[1])) - ((__pyx_v_U[1]) * (__pyx_v_V[0])));
23156 if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_v_dir_.shape[0];
23158 if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_v_dir_.shape[0];
23160 if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_v_dir_.shape[0];
23161 __pyx_v_dir_dist = sqrt(((pow((*((
double *) ( (__pyx_v_dir_.data + __pyx_t_28 * __pyx_v_dir_.strides[0]) ))), 2.0) + pow((*((
double *) ( (__pyx_v_dir_.data + __pyx_t_29 * __pyx_v_dir_.strides[0]) ))), 2.0)) + pow((*((
double *) ( (__pyx_v_dir_.data + __pyx_t_30 * __pyx_v_dir_.strides[0]) ))), 2.0)));
23171 if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_v_dir_.shape[0];
23172 *((
double *) ( (__pyx_v_dir_.data + __pyx_t_31 * __pyx_v_dir_.strides[0]) )) /= __pyx_v_dir_dist;
23182 if (__pyx_t_32 < 0) __pyx_t_32 += __pyx_v_dir_.shape[0];
23183 *((
double *) ( (__pyx_v_dir_.data + __pyx_t_32 * __pyx_v_dir_.strides[0]) )) /= __pyx_v_dir_dist;
23193 if (__pyx_t_33 < 0) __pyx_t_33 += __pyx_v_dir_.shape[0];
23194 *((
double *) ( (__pyx_v_dir_.data + __pyx_t_33 * __pyx_v_dir_.strides[0]) )) /= __pyx_v_dir_dist;
23204 if (__pyx_t_34 < 0) __pyx_t_34 += __pyx_v_dir_.shape[0];
23206 if (__pyx_t_35 < 0) __pyx_t_35 += __pyx_v_dir_.shape[0];
23207 *((
double *) ( (__pyx_v_dir_.data + __pyx_t_35 * __pyx_v_dir_.strides[0]) )) = fabs((1.0 - (*((
double *) ( (__pyx_v_dir_.data + __pyx_t_34 * __pyx_v_dir_.strides[0]) )))));
23217 if (__pyx_t_36 < 0) __pyx_t_36 += __pyx_v_dir_.shape[0];
23219 if (__pyx_t_37 < 0) __pyx_t_37 += __pyx_v_dir_.shape[0];
23220 *((
double *) ( (__pyx_v_dir_.data + __pyx_t_37 * __pyx_v_dir_.strides[0]) )) = fabs((1.0 - (*((
double *) ( (__pyx_v_dir_.data + __pyx_t_36 * __pyx_v_dir_.strides[0]) )))));
23230 if (__pyx_t_38 < 0) __pyx_t_38 += __pyx_v_dir_.shape[0];
23232 if (__pyx_t_39 < 0) __pyx_t_39 += __pyx_v_dir_.shape[0];
23233 *((
double *) ( (__pyx_v_dir_.data + __pyx_t_39 * __pyx_v_dir_.strides[0]) )) = fabs((1.0 - (*((
double *) ( (__pyx_v_dir_.data + __pyx_t_38 * __pyx_v_dir_.strides[0]) )))));
23246 __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
23247 __Pyx_WriteUnraisable(
"mprans.MeshSmoothing.cyFindBoundaryDirectionTetra", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
23249 __PYX_XDEC_MEMVIEW(&__pyx_v_node0, 1);
23250 __PYX_XDEC_MEMVIEW(&__pyx_v_node1, 1);
23251 __PYX_XDEC_MEMVIEW(&__pyx_v_node2, 1);
23252 __Pyx_RefNannyFinishContext();
23263 static __Pyx_memviewslice __pyx_f_6mprans_13MeshSmoothing_cyGetGlobalVariable(
int __pyx_v_variable_nb_local, CYTHON_UNUSED
int __pyx_v_nVariables_owned, __Pyx_memviewslice __pyx_v_variableNumbering_subdomain2global, __Pyx_memviewslice __pyx_v_variableOffsets_subdomain_owned) {
23264 int __pyx_v_nSubdomains;
23265 int __pyx_v_variable_nb_global;
23266 int __pyx_v_new_rank;
23268 int __pyx_v_result[2];
23269 __Pyx_memviewslice __pyx_r = { 0, 0, { 0 }, { 0 }, { 0 } };
23270 __Pyx_RefNannyDeclarations
23272 Py_ssize_t __pyx_t_2;
23276 Py_ssize_t __pyx_t_6;
23278 Py_ssize_t __pyx_t_8;
23279 struct __pyx_array_obj *__pyx_t_9 = NULL;
23280 PyObject *__pyx_t_10 = NULL;
23281 PyObject *__pyx_t_11 = NULL;
23282 __Pyx_memviewslice __pyx_t_12 = { 0, 0, { 0 }, { 0 }, { 0 } };
23283 __Pyx_RefNannySetupContext(
"cyGetGlobalVariable", 0);
23292 __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_variableOffsets_subdomain_owned);
23293 __pyx_v_nSubdomains = (__pyx_t_1 - 1);
23302 __pyx_v_new_rank = -2;
23311 __pyx_t_2 = __pyx_v_variable_nb_local;
23312 if (__pyx_t_2 < 0) __pyx_t_2 += __pyx_v_variableNumbering_subdomain2global.shape[0];
23313 __pyx_v_variable_nb_global = (*((
int *) ( (__pyx_v_variableNumbering_subdomain2global.data + __pyx_t_2 * __pyx_v_variableNumbering_subdomain2global.strides[0]) )));
23322 (__pyx_v_result[0]) = __pyx_v_variable_nb_global;
23331 (__pyx_v_result[1]) = __pyx_v_new_rank;
23340 __pyx_t_3 = (__pyx_v_nSubdomains + 1);
23341 __pyx_t_4 = __pyx_t_3;
23342 for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
23343 __pyx_v_i = __pyx_t_5;
23352 __pyx_t_6 = __pyx_v_i;
23353 if (__pyx_t_6 < 0) __pyx_t_6 += __pyx_v_variableOffsets_subdomain_owned.shape[0];
23354 __pyx_t_7 = (((*((
int *) ( (__pyx_v_variableOffsets_subdomain_owned.data + __pyx_t_6 * __pyx_v_variableOffsets_subdomain_owned.strides[0]) ))) > __pyx_v_variable_nb_global) != 0);
23364 __pyx_t_7 = ((__pyx_v_new_rank == -2
L) != 0);
23374 __pyx_v_new_rank = (__pyx_v_i - 1);
23402 __pyx_t_8 = __pyx_v_variable_nb_local;
23403 if (__pyx_t_8 < 0) __pyx_t_8 += __pyx_v_variableNumbering_subdomain2global.shape[0];
23404 __pyx_v_variable_nb_global = (*((
int *) ( (__pyx_v_variableNumbering_subdomain2global.data + __pyx_t_8 * __pyx_v_variableNumbering_subdomain2global.strides[0]) )));
23413 (__pyx_v_result[0]) = __pyx_v_variable_nb_global;
23422 (__pyx_v_result[1]) = __pyx_v_new_rank;
23431 __pyx_t_11 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_int);
23432 __pyx_t_10 = Py_BuildValue((
char*)
"(" __PYX_BUILD_PY_SSIZE_T
")", ((Py_ssize_t)2));
23433 if (unlikely(!__pyx_t_11 || !__pyx_t_10 || !PyBytes_AsString(__pyx_t_11))) __PYX_ERR(0, 1667, __pyx_L1_error)
23434 __Pyx_GOTREF(__pyx_t_11);
23435 __Pyx_GOTREF(__pyx_t_10);
23436 __pyx_t_9 = __pyx_array_new(__pyx_t_10,
sizeof(
int), PyBytes_AS_STRING(__pyx_t_11), (
char *)
"fortran", (
char *) __pyx_v_result);
23437 if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1667, __pyx_L1_error)
23438 __Pyx_GOTREF(__pyx_t_9);
23439 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
23440 __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
23441 __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(((PyObject *)__pyx_t_9), PyBUF_WRITABLE);
if (unlikely(!__pyx_t_12.memview)) __PYX_ERR(0, 1667, __pyx_L1_error)
23442 __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
23443 __pyx_r = __pyx_t_12;
23444 __pyx_t_12.memview = NULL;
23445 __pyx_t_12.data = NULL;
23458 __Pyx_XDECREF(((PyObject *)__pyx_t_9));
23459 __Pyx_XDECREF(__pyx_t_10);
23460 __Pyx_XDECREF(__pyx_t_11);
23461 __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1);
23462 __pyx_r.data = NULL;
23463 __pyx_r.memview = NULL;
23464 __Pyx_AddTraceback(
"mprans.MeshSmoothing.cyGetGlobalVariable", __pyx_clineno, __pyx_lineno, __pyx_filename);
23467 if (unlikely(!__pyx_r.memview)) {
23468 PyErr_SetString(PyExc_TypeError,
"Memoryview return value is not initialized");
23471 __Pyx_RefNannyFinishContext();
23483 static int __pyx_f_6mprans_13MeshSmoothing_cyGetLocalVariable(
int __pyx_v_variable_nb_global,
int __pyx_v_rank,
int __pyx_v_nVariables_owned, CYTHON_UNUSED __Pyx_memviewslice __pyx_v_variableNumbering_subdomain2global, __Pyx_memviewslice __pyx_v_variableOffsets_subdomain_owned) {
23484 int __pyx_v_new_variable_nb_local;
23486 __Pyx_RefNannyDeclarations
23487 Py_ssize_t __pyx_t_1;
23489 Py_ssize_t __pyx_t_3;
23491 Py_ssize_t __pyx_t_5;
23492 __Pyx_RefNannySetupContext(
"cyGetLocalVariable", 0);
23501 __pyx_t_1 = __pyx_v_rank;
23502 if (__pyx_t_1 < 0) __pyx_t_1 += __pyx_v_variableOffsets_subdomain_owned.shape[0];
23503 __pyx_t_2 = ((*((
int *) ( (__pyx_v_variableOffsets_subdomain_owned.data + __pyx_t_1 * __pyx_v_variableOffsets_subdomain_owned.strides[0]) ))) <= __pyx_v_variable_nb_global);
23505 __pyx_t_3 = (__pyx_v_rank + 1);
23506 if (__pyx_t_3 < 0) __pyx_t_3 += __pyx_v_variableOffsets_subdomain_owned.shape[0];
23507 __pyx_t_2 = (__pyx_v_variable_nb_global < (*((
int *) ( (__pyx_v_variableOffsets_subdomain_owned.data + __pyx_t_3 * __pyx_v_variableOffsets_subdomain_owned.strides[0]) ))));
23509 __pyx_t_4 = ((!(__pyx_t_2 != 0)) != 0);
23519 __pyx_t_4 = ((__pyx_v_variable_nb_global < __pyx_v_nVariables_owned) != 0);
23529 __pyx_v_new_variable_nb_local = __pyx_v_variable_nb_global;
23558 __pyx_t_5 = __pyx_v_rank;
23559 if (__pyx_t_5 < 0) __pyx_t_5 += __pyx_v_variableOffsets_subdomain_owned.shape[0];
23560 __pyx_v_new_variable_nb_local = (__pyx_v_variable_nb_global - (*((
int *) ( (__pyx_v_variableOffsets_subdomain_owned.data + __pyx_t_5 * __pyx_v_variableOffsets_subdomain_owned.strides[0]) ))));
23571 __pyx_r = __pyx_v_new_variable_nb_local;
23584 __Pyx_RefNannyFinishContext();
23596 static __Pyx_memviewslice __pyx_f_6mprans_13MeshSmoothing_cyScalarRecoveryAtNodes(__Pyx_memviewslice __pyx_v_scalars, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets) {
23597 __Pyx_memviewslice __pyx_v_recovered_scalars = { 0, 0, { 0 }, { 0 }, { 0 } };
23599 double __pyx_v_var_sum;
23601 int __pyx_v_eOffset;
23602 int __pyx_v_nNodes;
23603 __Pyx_memviewslice __pyx_r = { 0, 0, { 0 }, { 0 }, { 0 } };
23604 __Pyx_RefNannyDeclarations
23605 PyObject *__pyx_t_1 = NULL;
23606 PyObject *__pyx_t_2 = NULL;
23607 PyObject *__pyx_t_3 = NULL;
23609 PyObject *__pyx_t_5 = NULL;
23610 __Pyx_memviewslice __pyx_t_6 = { 0, 0, { 0 }, { 0 }, { 0 } };
23614 Py_ssize_t __pyx_t_10;
23616 Py_ssize_t __pyx_t_12;
23619 Py_ssize_t __pyx_t_15;
23620 Py_ssize_t __pyx_t_16;
23621 Py_ssize_t __pyx_t_17;
23622 __Pyx_RefNannySetupContext(
"cyScalarRecoveryAtNodes", 0);
23631 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1685, __pyx_L1_error)
23632 __Pyx_GOTREF(__pyx_t_2);
23633 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1685, __pyx_L1_error)
23634 __Pyx_GOTREF(__pyx_t_3);
23635 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23636 __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_nodeElementOffsets);
23637 __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_4 - 1));
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1685, __pyx_L1_error)
23638 __Pyx_GOTREF(__pyx_t_2);
23640 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
23641 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
23642 if (likely(__pyx_t_5)) {
23643 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_3);
23644 __Pyx_INCREF(__pyx_t_5);
23645 __Pyx_INCREF(
function);
23646 __Pyx_DECREF_SET(__pyx_t_3,
function);
23649 __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2);
23650 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
23651 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23652 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1685, __pyx_L1_error)
23653 __Pyx_GOTREF(__pyx_t_1);
23654 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23655 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1685, __pyx_L1_error)
23656 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23657 __pyx_v_recovered_scalars = __pyx_t_6;
23658 __pyx_t_6.memview = NULL;
23659 __pyx_t_6.data = NULL;
23668 __pyx_v_nNodes = ((__pyx_v_nodeElementOffsets.shape[0]) - 1);
23677 __pyx_t_7 = __pyx_v_nNodes;
23678 __pyx_t_8 = __pyx_t_7;
23679 for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
23680 __pyx_v_node = __pyx_t_9;
23698 __pyx_v_var_sum = 0.0;
23707 __pyx_t_10 = (__pyx_v_node + 1);
23708 if (__pyx_t_10 < 0) __pyx_t_10 += __pyx_v_nodeElementOffsets.shape[0];
23709 __pyx_t_11 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_10 * __pyx_v_nodeElementOffsets.strides[0]) )));
23718 __pyx_t_12 = __pyx_v_node;
23719 if (__pyx_t_12 < 0) __pyx_t_12 += __pyx_v_nodeElementOffsets.shape[0];
23728 __pyx_t_13 = __pyx_t_11;
23729 for (__pyx_t_14 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_12 * __pyx_v_nodeElementOffsets.strides[0]) ))); __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
23738 __pyx_v_eOffset = __pyx_t_14;
23747 __pyx_v_nb_el = (__pyx_v_nb_el + 1);
23756 __pyx_t_15 = __pyx_v_eOffset;
23757 if (__pyx_t_15 < 0) __pyx_t_15 += __pyx_v_nodeElementsArray.shape[0];
23758 __pyx_t_16 = (*((
int *) ( (__pyx_v_nodeElementsArray.data + __pyx_t_15 * __pyx_v_nodeElementsArray.strides[0]) )));
23759 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_scalars.shape[0];
23760 __pyx_v_var_sum = (__pyx_v_var_sum + (*((
double *) ( (__pyx_v_scalars.data + __pyx_t_16 * __pyx_v_scalars.strides[0]) ))));
23770 __pyx_t_17 = __pyx_v_node;
23771 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_recovered_scalars.shape[0];
23772 *((
double *) ( (__pyx_v_recovered_scalars.data + __pyx_t_17 * __pyx_v_recovered_scalars.strides[0]) )) = (__pyx_v_var_sum / __pyx_v_nb_el);
23782 __PYX_INC_MEMVIEW(&__pyx_v_recovered_scalars, 0);
23783 __pyx_r = __pyx_v_recovered_scalars;
23796 __Pyx_XDECREF(__pyx_t_1);
23797 __Pyx_XDECREF(__pyx_t_2);
23798 __Pyx_XDECREF(__pyx_t_3);
23799 __Pyx_XDECREF(__pyx_t_5);
23800 __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
23801 __pyx_r.data = NULL;
23802 __pyx_r.memview = NULL;
23803 __Pyx_AddTraceback(
"mprans.MeshSmoothing.cyScalarRecoveryAtNodes", __pyx_clineno, __pyx_lineno, __pyx_filename);
23806 if (unlikely(!__pyx_r.memview)) {
23807 PyErr_SetString(PyExc_TypeError,
"Memoryview return value is not initialized");
23810 __PYX_XDEC_MEMVIEW(&__pyx_v_recovered_scalars, 1);
23811 __Pyx_RefNannyFinishContext();
23823 static __Pyx_memviewslice __pyx_f_6mprans_13MeshSmoothing_cyScalarRecoveryAtNodesWeighted(__Pyx_memviewslice __pyx_v_scalars, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_detJ_array,
int __pyx_v_nNodes) {
23824 __Pyx_memviewslice __pyx_v_recovered_scalars = { 0, 0, { 0 }, { 0 }, { 0 } };
23825 double __pyx_v_detJ_patch;
23826 double __pyx_v_scalar_sum;
23829 int __pyx_v_eOffset;
23831 __Pyx_memviewslice __pyx_r = { 0, 0, { 0 }, { 0 }, { 0 } };
23832 __Pyx_RefNannyDeclarations
23833 PyObject *__pyx_t_1 = NULL;
23834 PyObject *__pyx_t_2 = NULL;
23835 PyObject *__pyx_t_3 = NULL;
23836 PyObject *__pyx_t_4 = NULL;
23837 __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
23841 Py_ssize_t __pyx_t_9;
23843 Py_ssize_t __pyx_t_11;
23846 Py_ssize_t __pyx_t_14;
23847 Py_ssize_t __pyx_t_15;
23848 Py_ssize_t __pyx_t_16;
23849 Py_ssize_t __pyx_t_17;
23850 Py_ssize_t __pyx_t_18;
23851 __Pyx_RefNannySetupContext(
"cyScalarRecoveryAtNodesWeighted", 0);
23860 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1706, __pyx_L1_error)
23861 __Pyx_GOTREF(__pyx_t_2);
23862 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1706, __pyx_L1_error)
23863 __Pyx_GOTREF(__pyx_t_3);
23864 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23865 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_nNodes);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1706, __pyx_L1_error)
23866 __Pyx_GOTREF(__pyx_t_2);
23868 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
23869 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
23870 if (likely(__pyx_t_4)) {
23871 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_3);
23872 __Pyx_INCREF(__pyx_t_4);
23873 __Pyx_INCREF(
function);
23874 __Pyx_DECREF_SET(__pyx_t_3,
function);
23877 __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2);
23878 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
23879 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23880 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1706, __pyx_L1_error)
23881 __Pyx_GOTREF(__pyx_t_1);
23882 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23883 __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 1706, __pyx_L1_error)
23884 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23885 __pyx_v_recovered_scalars = __pyx_t_5;
23886 __pyx_t_5.memview = NULL;
23887 __pyx_t_5.data = NULL;
23896 __pyx_v_detJ_patch = 0.;
23905 __pyx_v_scalar_sum = 0.;
23914 __pyx_t_6 = __pyx_v_nNodes;
23915 __pyx_t_7 = __pyx_t_6;
23916 for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
23917 __pyx_v_node = __pyx_t_8;
23935 __pyx_v_detJ_patch = 0.;
23944 __pyx_v_scalar_sum = 0.;
23953 __pyx_t_9 = (__pyx_v_node + 1);
23954 if (__pyx_t_9 < 0) __pyx_t_9 += __pyx_v_nodeElementOffsets.shape[0];
23955 __pyx_t_10 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_9 * __pyx_v_nodeElementOffsets.strides[0]) )));
23964 __pyx_t_11 = __pyx_v_node;
23965 if (__pyx_t_11 < 0) __pyx_t_11 += __pyx_v_nodeElementOffsets.shape[0];
23974 __pyx_t_12 = __pyx_t_10;
23975 for (__pyx_t_13 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_11 * __pyx_v_nodeElementOffsets.strides[0]) ))); __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
23984 __pyx_v_eOffset = __pyx_t_13;
23993 __pyx_v_nb_el = (__pyx_v_nb_el + 1);
24002 __pyx_t_14 = __pyx_v_eOffset;
24003 if (__pyx_t_14 < 0) __pyx_t_14 += __pyx_v_nodeElementsArray.shape[0];
24004 __pyx_v_eN = (*((
int *) ( (__pyx_v_nodeElementsArray.data + __pyx_t_14 * __pyx_v_nodeElementsArray.strides[0]) )));
24013 __pyx_t_15 = __pyx_v_eN;
24014 if (__pyx_t_15 < 0) __pyx_t_15 += __pyx_v_detJ_array.shape[0];
24015 __pyx_v_detJ_patch = (__pyx_v_detJ_patch + (*((
double *) ( (__pyx_v_detJ_array.data + __pyx_t_15 * __pyx_v_detJ_array.strides[0]) ))));
24024 __pyx_t_16 = __pyx_v_eN;
24025 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_detJ_array.shape[0];
24026 __pyx_t_17 = __pyx_v_eN;
24027 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_scalars.shape[0];
24028 __pyx_v_scalar_sum = (__pyx_v_scalar_sum + ((*((
double *) ( (__pyx_v_detJ_array.data + __pyx_t_16 * __pyx_v_detJ_array.strides[0]) ))) * (*((
double *) ( (__pyx_v_scalars.data + __pyx_t_17 * __pyx_v_scalars.strides[0]) )))));
24038 __pyx_t_18 = __pyx_v_node;
24039 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_recovered_scalars.shape[0];
24040 *((
double *) ( (__pyx_v_recovered_scalars.data + __pyx_t_18 * __pyx_v_recovered_scalars.strides[0]) )) = (__pyx_v_scalar_sum / __pyx_v_detJ_patch);
24050 __PYX_INC_MEMVIEW(&__pyx_v_recovered_scalars, 0);
24051 __pyx_r = __pyx_v_recovered_scalars;
24064 __Pyx_XDECREF(__pyx_t_1);
24065 __Pyx_XDECREF(__pyx_t_2);
24066 __Pyx_XDECREF(__pyx_t_3);
24067 __Pyx_XDECREF(__pyx_t_4);
24068 __PYX_XDEC_MEMVIEW(&__pyx_t_5, 1);
24069 __pyx_r.data = NULL;
24070 __pyx_r.memview = NULL;
24071 __Pyx_AddTraceback(
"mprans.MeshSmoothing.cyScalarRecoveryAtNodesWeighted", __pyx_clineno, __pyx_lineno, __pyx_filename);
24074 if (unlikely(!__pyx_r.memview)) {
24075 PyErr_SetString(PyExc_TypeError,
"Memoryview return value is not initialized");
24078 __PYX_XDEC_MEMVIEW(&__pyx_v_recovered_scalars, 1);
24079 __Pyx_RefNannyFinishContext();
24091 static __Pyx_memviewslice __pyx_f_6mprans_13MeshSmoothing_cyVectorRecoveryAtNodes(__Pyx_memviewslice __pyx_v_vectors, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets,
int __pyx_v_nd) {
24092 __Pyx_memviewslice __pyx_v_recovered_vectors = { 0, 0, { 0 }, { 0 }, { 0 } };
24093 __Pyx_memviewslice __pyx_v_vector_sum = { 0, 0, { 0 }, { 0 }, { 0 } };
24094 int __pyx_v_nNodes;
24096 int __pyx_v_eOffset;
24100 __Pyx_memviewslice __pyx_r = { 0, 0, { 0 }, { 0 }, { 0 } };
24101 __Pyx_RefNannyDeclarations
24102 PyObject *__pyx_t_1 = NULL;
24103 PyObject *__pyx_t_2 = NULL;
24104 PyObject *__pyx_t_3 = NULL;
24105 PyObject *__pyx_t_4 = NULL;
24106 PyObject *__pyx_t_5 = NULL;
24107 __Pyx_memviewslice __pyx_t_6 = { 0, 0, { 0 }, { 0 }, { 0 } };
24108 __Pyx_memviewslice __pyx_t_7 = { 0, 0, { 0 }, { 0 }, { 0 } };
24115 Py_ssize_t __pyx_t_14;
24116 Py_ssize_t __pyx_t_15;
24117 Py_ssize_t __pyx_t_16;
24118 Py_ssize_t __pyx_t_17;
24122 Py_ssize_t __pyx_t_21;
24123 Py_ssize_t __pyx_t_22;
24124 Py_ssize_t __pyx_t_23;
24125 Py_ssize_t __pyx_t_24;
24126 Py_ssize_t __pyx_t_25;
24127 Py_ssize_t __pyx_t_26;
24128 __Pyx_RefNannySetupContext(
"cyVectorRecoveryAtNodes", 0);
24137 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1734, __pyx_L1_error)
24138 __Pyx_GOTREF(__pyx_t_2);
24139 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1734, __pyx_L1_error)
24140 __Pyx_GOTREF(__pyx_t_3);
24141 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24142 __pyx_t_2 = PyInt_FromSsize_t(((__pyx_v_nodeElementOffsets.shape[0]) - 1));
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1734, __pyx_L1_error)
24143 __Pyx_GOTREF(__pyx_t_2);
24144 __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_nd);
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1734, __pyx_L1_error)
24145 __Pyx_GOTREF(__pyx_t_4);
24146 __pyx_t_5 = PyTuple_New(2);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1734, __pyx_L1_error)
24147 __Pyx_GOTREF(__pyx_t_5);
24148 __Pyx_GIVEREF(__pyx_t_2);
24149 PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
24150 __Pyx_GIVEREF(__pyx_t_4);
24151 PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
24155 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
24156 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
24157 if (likely(__pyx_t_4)) {
24158 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_3);
24159 __Pyx_INCREF(__pyx_t_4);
24160 __Pyx_INCREF(
function);
24161 __Pyx_DECREF_SET(__pyx_t_3,
function);
24164 __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5);
24165 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
24166 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24167 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1734, __pyx_L1_error)
24168 __Pyx_GOTREF(__pyx_t_1);
24169 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24170 __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1734, __pyx_L1_error)
24171 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24172 __pyx_v_recovered_vectors = __pyx_t_6;
24173 __pyx_t_6.memview = NULL;
24174 __pyx_t_6.data = NULL;
24183 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1735, __pyx_L1_error)
24184 __Pyx_GOTREF(__pyx_t_3);
24185 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1735, __pyx_L1_error)
24186 __Pyx_GOTREF(__pyx_t_5);
24187 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24188 __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nd);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1735, __pyx_L1_error)
24189 __Pyx_GOTREF(__pyx_t_3);
24191 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
24192 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
24193 if (likely(__pyx_t_4)) {
24194 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_5);
24195 __Pyx_INCREF(__pyx_t_4);
24196 __Pyx_INCREF(
function);
24197 __Pyx_DECREF_SET(__pyx_t_5,
function);
24200 __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_3);
24201 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
24202 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24203 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1735, __pyx_L1_error)
24204 __Pyx_GOTREF(__pyx_t_1);
24205 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24206 __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 1735, __pyx_L1_error)
24207 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24208 __pyx_v_vector_sum = __pyx_t_7;
24209 __pyx_t_7.memview = NULL;
24210 __pyx_t_7.data = NULL;
24219 __pyx_v_nNodes = ((__pyx_v_nodeElementOffsets.shape[0]) - 1);
24228 __pyx_t_8 = __pyx_v_nNodes;
24229 __pyx_t_9 = __pyx_t_8;
24230 for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
24231 __pyx_v_node = __pyx_t_10;
24249 __pyx_t_11 = __pyx_v_nd;
24250 __pyx_t_12 = __pyx_t_11;
24251 for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
24252 __pyx_v_ndi = __pyx_t_13;
24261 __pyx_t_14 = __pyx_v_ndi;
24262 if (__pyx_t_14 < 0) __pyx_t_14 += __pyx_v_vector_sum.shape[0];
24263 *((
double *) ( (__pyx_v_vector_sum.data + __pyx_t_14 * __pyx_v_vector_sum.strides[0]) )) = 0.;
24273 __pyx_t_15 = (__pyx_v_node + 1);
24274 if (__pyx_t_15 < 0) __pyx_t_15 += __pyx_v_nodeElementOffsets.shape[0];
24275 __pyx_t_11 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_15 * __pyx_v_nodeElementOffsets.strides[0]) )));
24284 __pyx_t_16 = __pyx_v_node;
24285 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_nodeElementOffsets.shape[0];
24294 __pyx_t_12 = __pyx_t_11;
24295 for (__pyx_t_13 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_16 * __pyx_v_nodeElementOffsets.strides[0]) ))); __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
24304 __pyx_v_eOffset = __pyx_t_13;
24313 __pyx_v_nb_el = (__pyx_v_nb_el + 1);
24322 __pyx_t_17 = __pyx_v_eOffset;
24323 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_nodeElementsArray.shape[0];
24324 __pyx_v_eN = (*((
int *) ( (__pyx_v_nodeElementsArray.data + __pyx_t_17 * __pyx_v_nodeElementsArray.strides[0]) )));
24333 __pyx_t_18 = __pyx_v_nd;
24334 __pyx_t_19 = __pyx_t_18;
24335 for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) {
24336 __pyx_v_ndi = __pyx_t_20;
24345 __pyx_t_21 = __pyx_v_eN;
24346 __pyx_t_22 = __pyx_v_ndi;
24347 if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_v_vectors.shape[0];
24348 if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_v_vectors.shape[1];
24349 __pyx_t_23 = __pyx_v_ndi;
24350 if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_v_vector_sum.shape[0];
24351 *((
double *) ( (__pyx_v_vector_sum.data + __pyx_t_23 * __pyx_v_vector_sum.strides[0]) )) += (*((
double *) ( (( (__pyx_v_vectors.data + __pyx_t_21 * __pyx_v_vectors.strides[0]) ) + __pyx_t_22 * __pyx_v_vectors.strides[1]) )));
24362 __pyx_t_11 = __pyx_v_nd;
24363 __pyx_t_12 = __pyx_t_11;
24364 for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
24365 __pyx_v_ndi = __pyx_t_13;
24374 __pyx_t_24 = __pyx_v_ndi;
24375 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_vector_sum.shape[0];
24376 __pyx_t_25 = __pyx_v_node;
24377 __pyx_t_26 = __pyx_v_ndi;
24378 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_recovered_vectors.shape[0];
24379 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_recovered_vectors.shape[1];
24380 *((
double *) ( (( (__pyx_v_recovered_vectors.data + __pyx_t_25 * __pyx_v_recovered_vectors.strides[0]) ) + __pyx_t_26 * __pyx_v_recovered_vectors.strides[1]) )) = ((*((
double *) ( (__pyx_v_vector_sum.data + __pyx_t_24 * __pyx_v_vector_sum.strides[0]) ))) / __pyx_v_nb_el);
24391 __PYX_INC_MEMVIEW(&__pyx_v_recovered_vectors, 0);
24392 __pyx_r = __pyx_v_recovered_vectors;
24405 __Pyx_XDECREF(__pyx_t_1);
24406 __Pyx_XDECREF(__pyx_t_2);
24407 __Pyx_XDECREF(__pyx_t_3);
24408 __Pyx_XDECREF(__pyx_t_4);
24409 __Pyx_XDECREF(__pyx_t_5);
24410 __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
24411 __PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
24412 __pyx_r.data = NULL;
24413 __pyx_r.memview = NULL;
24414 __Pyx_AddTraceback(
"mprans.MeshSmoothing.cyVectorRecoveryAtNodes", __pyx_clineno, __pyx_lineno, __pyx_filename);
24417 if (unlikely(!__pyx_r.memview)) {
24418 PyErr_SetString(PyExc_TypeError,
"Memoryview return value is not initialized");
24421 __PYX_XDEC_MEMVIEW(&__pyx_v_recovered_vectors, 1);
24422 __PYX_XDEC_MEMVIEW(&__pyx_v_vector_sum, 1);
24423 __Pyx_RefNannyFinishContext();
24435 static __Pyx_memviewslice __pyx_f_6mprans_13MeshSmoothing_cyVectorRecoveryAtNodesWeighted(__Pyx_memviewslice __pyx_v_vectors, __Pyx_memviewslice __pyx_v_nodeElementsArray, __Pyx_memviewslice __pyx_v_nodeElementOffsets, __Pyx_memviewslice __pyx_v_detJ_array,
int __pyx_v_nd) {
24436 __Pyx_memviewslice __pyx_v_recovered_vectors = { 0, 0, { 0 }, { 0 }, { 0 } };
24437 __Pyx_memviewslice __pyx_v_vector_sum = { 0, 0, { 0 }, { 0 }, { 0 } };
24438 int __pyx_v_nNodes;
24439 double __pyx_v_detJ_patch;
24444 int __pyx_v_eOffset;
24445 __Pyx_memviewslice __pyx_r = { 0, 0, { 0 }, { 0 }, { 0 } };
24446 __Pyx_RefNannyDeclarations
24447 PyObject *__pyx_t_1 = NULL;
24448 PyObject *__pyx_t_2 = NULL;
24449 PyObject *__pyx_t_3 = NULL;
24451 PyObject *__pyx_t_5 = NULL;
24452 PyObject *__pyx_t_6 = NULL;
24453 __Pyx_memviewslice __pyx_t_7 = { 0, 0, { 0 }, { 0 }, { 0 } };
24454 __Pyx_memviewslice __pyx_t_8 = { 0, 0, { 0 }, { 0 }, { 0 } };
24461 Py_ssize_t __pyx_t_15;
24462 Py_ssize_t __pyx_t_16;
24463 Py_ssize_t __pyx_t_17;
24464 Py_ssize_t __pyx_t_18;
24465 Py_ssize_t __pyx_t_19;
24466 Py_ssize_t __pyx_t_20;
24470 Py_ssize_t __pyx_t_24;
24471 Py_ssize_t __pyx_t_25;
24472 Py_ssize_t __pyx_t_26;
24473 Py_ssize_t __pyx_t_27;
24474 Py_ssize_t __pyx_t_28;
24475 Py_ssize_t __pyx_t_29;
24476 Py_ssize_t __pyx_t_30;
24477 Py_ssize_t __pyx_t_31;
24478 __Pyx_RefNannySetupContext(
"cyVectorRecoveryAtNodesWeighted", 0);
24487 __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1765, __pyx_L1_error)
24488 __Pyx_GOTREF(__pyx_t_2);
24489 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1765, __pyx_L1_error)
24490 __Pyx_GOTREF(__pyx_t_3);
24491 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24492 __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_nodeElementOffsets);
24493 __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_4 - 1));
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1765, __pyx_L1_error)
24494 __Pyx_GOTREF(__pyx_t_2);
24495 __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_nd);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1765, __pyx_L1_error)
24496 __Pyx_GOTREF(__pyx_t_5);
24497 __pyx_t_6 = PyTuple_New(2);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1765, __pyx_L1_error)
24498 __Pyx_GOTREF(__pyx_t_6);
24499 __Pyx_GIVEREF(__pyx_t_2);
24500 PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
24501 __Pyx_GIVEREF(__pyx_t_5);
24502 PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
24506 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
24507 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
24508 if (likely(__pyx_t_5)) {
24509 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_3);
24510 __Pyx_INCREF(__pyx_t_5);
24511 __Pyx_INCREF(
function);
24512 __Pyx_DECREF_SET(__pyx_t_3,
function);
24515 __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6);
24516 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
24517 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
24518 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1765, __pyx_L1_error)
24519 __Pyx_GOTREF(__pyx_t_1);
24520 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24521 __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 1765, __pyx_L1_error)
24522 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24523 __pyx_v_recovered_vectors = __pyx_t_7;
24524 __pyx_t_7.memview = NULL;
24525 __pyx_t_7.data = NULL;
24534 __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1766, __pyx_L1_error)
24535 __Pyx_GOTREF(__pyx_t_3);
24536 __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1766, __pyx_L1_error)
24537 __Pyx_GOTREF(__pyx_t_6);
24538 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24539 __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nd);
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1766, __pyx_L1_error)
24540 __Pyx_GOTREF(__pyx_t_3);
24542 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
24543 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
24544 if (likely(__pyx_t_5)) {
24545 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_6);
24546 __Pyx_INCREF(__pyx_t_5);
24547 __Pyx_INCREF(
function);
24548 __Pyx_DECREF_SET(__pyx_t_6,
function);
24551 __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
24552 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
24553 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24554 if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1766, __pyx_L1_error)
24555 __Pyx_GOTREF(__pyx_t_1);
24556 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
24557 __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_1, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 1766, __pyx_L1_error)
24558 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24559 __pyx_v_vector_sum = __pyx_t_8;
24560 __pyx_t_8.memview = NULL;
24561 __pyx_t_8.data = NULL;
24570 __pyx_v_nNodes = ((__pyx_v_nodeElementOffsets.shape[0]) - 1);
24579 __pyx_v_detJ_patch = 0.;
24588 __pyx_t_9 = __pyx_v_nNodes;
24589 __pyx_t_10 = __pyx_t_9;
24590 for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
24591 __pyx_v_node = __pyx_t_11;
24609 __pyx_v_detJ_patch = 0.;
24618 __pyx_t_12 = __pyx_v_nd;
24619 __pyx_t_13 = __pyx_t_12;
24620 for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
24621 __pyx_v_ndi = __pyx_t_14;
24630 __pyx_t_15 = __pyx_v_ndi;
24631 if (__pyx_t_15 < 0) __pyx_t_15 += __pyx_v_vector_sum.shape[0];
24632 *((
double *) ( (__pyx_v_vector_sum.data + __pyx_t_15 * __pyx_v_vector_sum.strides[0]) )) = 0.;
24642 __pyx_t_16 = (__pyx_v_node + 1);
24643 if (__pyx_t_16 < 0) __pyx_t_16 += __pyx_v_nodeElementOffsets.shape[0];
24644 __pyx_t_12 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_16 * __pyx_v_nodeElementOffsets.strides[0]) )));
24653 __pyx_t_17 = __pyx_v_node;
24654 if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_v_nodeElementOffsets.shape[0];
24663 __pyx_t_13 = __pyx_t_12;
24664 for (__pyx_t_14 = (*((
int *) ( (__pyx_v_nodeElementOffsets.data + __pyx_t_17 * __pyx_v_nodeElementOffsets.strides[0]) ))); __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
24673 __pyx_v_eOffset = __pyx_t_14;
24682 __pyx_v_nb_el = (__pyx_v_nb_el + 1);
24691 __pyx_t_18 = __pyx_v_eOffset;
24692 if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_v_nodeElementsArray.shape[0];
24693 __pyx_v_eN = (*((
int *) ( (__pyx_v_nodeElementsArray.data + __pyx_t_18 * __pyx_v_nodeElementsArray.strides[0]) )));
24702 __pyx_t_19 = __pyx_v_eN;
24704 if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_v_detJ_array.shape[0];
24705 if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_v_detJ_array.shape[1];
24706 __pyx_v_detJ_patch = (__pyx_v_detJ_patch + (*((
double *) ( (( (__pyx_v_detJ_array.data + __pyx_t_19 * __pyx_v_detJ_array.strides[0]) ) + __pyx_t_20 * __pyx_v_detJ_array.strides[1]) ))));
24715 __pyx_t_21 = __pyx_v_nd;
24716 __pyx_t_22 = __pyx_t_21;
24717 for (__pyx_t_23 = 0; __pyx_t_23 < __pyx_t_22; __pyx_t_23+=1) {
24718 __pyx_v_ndi = __pyx_t_23;
24727 __pyx_t_24 = __pyx_v_eN;
24729 if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_v_detJ_array.shape[0];
24730 if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_v_detJ_array.shape[1];
24731 __pyx_t_26 = __pyx_v_eN;
24732 __pyx_t_27 = __pyx_v_ndi;
24733 if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_v_vectors.shape[0];
24734 if (__pyx_t_27 < 0) __pyx_t_27 += __pyx_v_vectors.shape[1];
24735 __pyx_t_28 = __pyx_v_ndi;
24736 if (__pyx_t_28 < 0) __pyx_t_28 += __pyx_v_vector_sum.shape[0];
24737 *((
double *) ( (__pyx_v_vector_sum.data + __pyx_t_28 * __pyx_v_vector_sum.strides[0]) )) += ((*((
double *) ( (( (__pyx_v_detJ_array.data + __pyx_t_24 * __pyx_v_detJ_array.strides[0]) ) + __pyx_t_25 * __pyx_v_detJ_array.strides[1]) ))) * (*((
double *) ( (( (__pyx_v_vectors.data + __pyx_t_26 * __pyx_v_vectors.strides[0]) ) + __pyx_t_27 * __pyx_v_vectors.strides[1]) ))));
24748 __pyx_t_12 = __pyx_v_nd;
24749 __pyx_t_13 = __pyx_t_12;
24750 for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
24751 __pyx_v_ndi = __pyx_t_14;
24759 __pyx_t_29 = __pyx_v_ndi;
24760 if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_v_vector_sum.shape[0];
24761 __pyx_t_30 = __pyx_v_node;
24762 __pyx_t_31 = __pyx_v_ndi;
24763 if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_v_recovered_vectors.shape[0];
24764 if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_v_recovered_vectors.shape[1];
24765 *((
double *) ( (( (__pyx_v_recovered_vectors.data + __pyx_t_30 * __pyx_v_recovered_vectors.strides[0]) ) + __pyx_t_31 * __pyx_v_recovered_vectors.strides[1]) )) = ((*((
double *) ( (__pyx_v_vector_sum.data + __pyx_t_29 * __pyx_v_vector_sum.strides[0]) ))) / __pyx_v_detJ_patch);
24774 __PYX_INC_MEMVIEW(&__pyx_v_recovered_vectors, 0);
24775 __pyx_r = __pyx_v_recovered_vectors;
24788 __Pyx_XDECREF(__pyx_t_1);
24789 __Pyx_XDECREF(__pyx_t_2);
24790 __Pyx_XDECREF(__pyx_t_3);
24791 __Pyx_XDECREF(__pyx_t_5);
24792 __Pyx_XDECREF(__pyx_t_6);
24793 __PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
24794 __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1);
24795 __pyx_r.data = NULL;
24796 __pyx_r.memview = NULL;
24797 __Pyx_AddTraceback(
"mprans.MeshSmoothing.cyVectorRecoveryAtNodesWeighted", __pyx_clineno, __pyx_lineno, __pyx_filename);
24800 if (unlikely(!__pyx_r.memview)) {
24801 PyErr_SetString(PyExc_TypeError,
"Memoryview return value is not initialized");
24804 __PYX_XDEC_MEMVIEW(&__pyx_v_recovered_vectors, 1);
24805 __PYX_XDEC_MEMVIEW(&__pyx_v_vector_sum, 1);
24806 __Pyx_RefNannyFinishContext();
24819 static CYTHON_UNUSED
int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info,
int __pyx_v_flags);
24820 static CYTHON_UNUSED
int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info,
int __pyx_v_flags) {
24822 __Pyx_RefNannyDeclarations
24823 __Pyx_RefNannySetupContext(
"__getbuffer__ (wrapper)", 0);
24824 __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((
int)__pyx_v_flags));
24827 __Pyx_RefNannyFinishContext();
24831 static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info,
int __pyx_v_flags) {
24834 int __pyx_v_endian_detector;
24835 int __pyx_v_little_endian;
24838 PyArray_Descr *__pyx_v_descr = 0;
24839 int __pyx_v_offset;
24841 __Pyx_RefNannyDeclarations
24844 PyObject *__pyx_t_3 = NULL;
24848 PyArray_Descr *__pyx_t_7;
24849 PyObject *__pyx_t_8 = NULL;
24851 if (__pyx_v_info == NULL) {
24852 PyErr_SetString(PyExc_BufferError,
"PyObject_GetBuffer: view==NULL argument is obsolete");
24855 __Pyx_RefNannySetupContext(
"__getbuffer__", 0);
24856 __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None);
24857 __Pyx_GIVEREF(__pyx_v_info->obj);
24866 __pyx_v_endian_detector = 1;
24875 __pyx_v_little_endian = ((((
char *)(&__pyx_v_endian_detector))[0]) != 0);
24884 __pyx_v_ndim = PyArray_NDIM(__pyx_v_self);
24893 __pyx_t_2 = (((__pyx_v_flags & PyBUF_C_CONTIGUOUS) == PyBUF_C_CONTIGUOUS) != 0);
24896 __pyx_t_1 = __pyx_t_2;
24897 goto __pyx_L4_bool_binop_done;
24907 __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0);
24908 __pyx_t_1 = __pyx_t_2;
24909 __pyx_L4_bool_binop_done:;
24918 if (unlikely(__pyx_t_1)) {
24927 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__7, NULL);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 272, __pyx_L1_error)
24928 __Pyx_GOTREF(__pyx_t_3);
24929 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
24930 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24931 __PYX_ERR(1, 272, __pyx_L1_error)
24949 __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0);
24952 __pyx_t_1 = __pyx_t_2;
24953 goto __pyx_L7_bool_binop_done;
24963 __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0);
24964 __pyx_t_1 = __pyx_t_2;
24965 __pyx_L7_bool_binop_done:;
24974 if (unlikely(__pyx_t_1)) {
24983 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 276, __pyx_L1_error)
24984 __Pyx_GOTREF(__pyx_t_3);
24985 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
24986 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24987 __PYX_ERR(1, 276, __pyx_L1_error)
25005 __pyx_v_info->buf = PyArray_DATA(__pyx_v_self);
25014 __pyx_v_info->ndim = __pyx_v_ndim;
25023 __pyx_t_1 = (((
sizeof(npy_intp)) != (
sizeof(Py_ssize_t))) != 0);
25033 __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((
sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim))));
25042 __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim);
25051 __pyx_t_4 = __pyx_v_ndim;
25052 __pyx_t_5 = __pyx_t_4;
25053 for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
25054 __pyx_v_i = __pyx_t_6;
25063 (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]);
25072 (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]);
25093 __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self));
25102 __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self));
25113 __pyx_v_info->suboffsets = NULL;
25122 __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self);
25131 __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0));
25149 __pyx_t_7 = PyArray_DESCR(__pyx_v_self);
25150 __pyx_t_3 = ((PyObject *)__pyx_t_7);
25151 __Pyx_INCREF(__pyx_t_3);
25152 __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3);
25162 __Pyx_INCREF(((PyObject *)__pyx_v_self));
25163 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
25164 __Pyx_GOTREF(__pyx_v_info->obj);
25165 __Pyx_DECREF(__pyx_v_info->obj);
25166 __pyx_v_info->obj = ((PyObject *)__pyx_v_self);
25175 __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0);
25185 __pyx_t_4 = __pyx_v_descr->type_num;
25186 __pyx_v_t = __pyx_t_4;
25195 __pyx_t_2 = ((__pyx_v_descr->byteorder ==
'>') != 0);
25197 goto __pyx_L15_next_or;
25200 __pyx_t_2 = (__pyx_v_little_endian != 0);
25203 __pyx_t_1 = __pyx_t_2;
25204 goto __pyx_L14_bool_binop_done;
25206 __pyx_L15_next_or:;
25215 __pyx_t_2 = ((__pyx_v_descr->byteorder ==
'<') != 0);
25218 __pyx_t_1 = __pyx_t_2;
25219 goto __pyx_L14_bool_binop_done;
25221 __pyx_t_2 = ((!(__pyx_v_little_endian != 0)) != 0);
25222 __pyx_t_1 = __pyx_t_2;
25223 __pyx_L14_bool_binop_done:;
25232 if (unlikely(__pyx_t_1)) {
25241 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__9, NULL);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 306, __pyx_L1_error)
25242 __Pyx_GOTREF(__pyx_t_3);
25243 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
25244 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
25245 __PYX_ERR(1, 306, __pyx_L1_error)
25263 switch (__pyx_v_t) {
25265 __pyx_v_f = ((
char *)
"b");
25276 __pyx_v_f = ((
char *)
"B");
25287 __pyx_v_f = ((
char *)
"h");
25298 __pyx_v_f = ((
char *)
"H");
25309 __pyx_v_f = ((
char *)
"i");
25320 __pyx_v_f = ((
char *)
"I");
25331 __pyx_v_f = ((
char *)
"l");
25342 __pyx_v_f = ((
char *)
"L");
25353 __pyx_v_f = ((
char *)
"q");
25355 case NPY_ULONGLONG:
25364 __pyx_v_f = ((
char *)
"Q");
25375 __pyx_v_f = ((
char *)
"f");
25386 __pyx_v_f = ((
char *)
"d");
25388 case NPY_LONGDOUBLE:
25397 __pyx_v_f = ((
char *)
"g");
25408 __pyx_v_f = ((
char *)
"Zf");
25419 __pyx_v_f = ((
char *)
"Zd");
25421 case NPY_CLONGDOUBLE:
25430 __pyx_v_f = ((
char *)
"Zg");
25441 __pyx_v_f = ((
char *)
"O");
25452 __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_t);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 325, __pyx_L1_error)
25453 __Pyx_GOTREF(__pyx_t_3);
25454 __pyx_t_8 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3);
if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 325, __pyx_L1_error)
25455 __Pyx_GOTREF(__pyx_t_8);
25456 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
25457 __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 325, __pyx_L1_error)
25458 __Pyx_GOTREF(__pyx_t_3);
25459 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
25460 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
25461 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
25462 __PYX_ERR(1, 325, __pyx_L1_error)
25473 __pyx_v_info->format = __pyx_v_f;
25502 __pyx_v_info->format = ((
char *)PyObject_Malloc(0xFF));
25511 (__pyx_v_info->format[0]) =
'^';
25520 __pyx_v_offset = 0;
25529 __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_descr, (__pyx_v_info->format + 1), (__pyx_v_info->format + 0xFF), (&__pyx_v_offset));
if (unlikely(__pyx_t_9 == ((
char *)NULL))) __PYX_ERR(1, 332, __pyx_L1_error)
25530 __pyx_v_f = __pyx_t_9;
25539 (__pyx_v_f[0]) =
'\x00';
25554 __Pyx_XDECREF(__pyx_t_3);
25555 __Pyx_XDECREF(__pyx_t_8);
25556 __Pyx_AddTraceback(
"numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25558 if (__pyx_v_info->obj != NULL) {
25559 __Pyx_GOTREF(__pyx_v_info->obj);
25560 __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
25564 if (__pyx_v_info->obj == Py_None) {
25565 __Pyx_GOTREF(__pyx_v_info->obj);
25566 __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
25569 __Pyx_XDECREF((PyObject *)__pyx_v_descr);
25570 __Pyx_RefNannyFinishContext();
25583 static CYTHON_UNUSED
void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info);
25584 static CYTHON_UNUSED
void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info) {
25585 __Pyx_RefNannyDeclarations
25586 __Pyx_RefNannySetupContext(
"__releasebuffer__ (wrapper)", 0);
25587 __pyx_pf_5numpy_7ndarray_2__releasebuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info));
25590 __Pyx_RefNannyFinishContext();
25593 static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info) {
25594 __Pyx_RefNannyDeclarations
25596 __Pyx_RefNannySetupContext(
"__releasebuffer__", 0);
25605 __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0);
25615 PyObject_Free(__pyx_v_info->format);
25633 __pyx_t_1 = (((
sizeof(npy_intp)) != (
sizeof(Py_ssize_t))) != 0);
25643 PyObject_Free(__pyx_v_info->strides);
25663 __Pyx_RefNannyFinishContext();
25674 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) {
25675 PyObject *__pyx_r = NULL;
25676 __Pyx_RefNannyDeclarations
25677 PyObject *__pyx_t_1 = NULL;
25678 __Pyx_RefNannySetupContext(
"PyArray_MultiIterNew1", 0);
25687 __Pyx_XDECREF(__pyx_r);
25688 __pyx_t_1 = PyArray_MultiIterNew(1, ((
void *)__pyx_v_a));
if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 822, __pyx_L1_error)
25689 __Pyx_GOTREF(__pyx_t_1);
25690 __pyx_r = __pyx_t_1;
25704 __Pyx_XDECREF(__pyx_t_1);
25705 __Pyx_AddTraceback(
"numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename);
25708 __Pyx_XGIVEREF(__pyx_r);
25709 __Pyx_RefNannyFinishContext();
25721 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) {
25722 PyObject *__pyx_r = NULL;
25723 __Pyx_RefNannyDeclarations
25724 PyObject *__pyx_t_1 = NULL;
25725 __Pyx_RefNannySetupContext(
"PyArray_MultiIterNew2", 0);
25734 __Pyx_XDECREF(__pyx_r);
25735 __pyx_t_1 = PyArray_MultiIterNew(2, ((
void *)__pyx_v_a), ((
void *)__pyx_v_b));
if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 825, __pyx_L1_error)
25736 __Pyx_GOTREF(__pyx_t_1);
25737 __pyx_r = __pyx_t_1;
25751 __Pyx_XDECREF(__pyx_t_1);
25752 __Pyx_AddTraceback(
"numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename);
25755 __Pyx_XGIVEREF(__pyx_r);
25756 __Pyx_RefNannyFinishContext();
25768 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) {
25769 PyObject *__pyx_r = NULL;
25770 __Pyx_RefNannyDeclarations
25771 PyObject *__pyx_t_1 = NULL;
25772 __Pyx_RefNannySetupContext(
"PyArray_MultiIterNew3", 0);
25781 __Pyx_XDECREF(__pyx_r);
25782 __pyx_t_1 = PyArray_MultiIterNew(3, ((
void *)__pyx_v_a), ((
void *)__pyx_v_b), ((
void *)__pyx_v_c));
if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 828, __pyx_L1_error)
25783 __Pyx_GOTREF(__pyx_t_1);
25784 __pyx_r = __pyx_t_1;
25798 __Pyx_XDECREF(__pyx_t_1);
25799 __Pyx_AddTraceback(
"numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename);
25802 __Pyx_XGIVEREF(__pyx_r);
25803 __Pyx_RefNannyFinishContext();
25815 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) {
25816 PyObject *__pyx_r = NULL;
25817 __Pyx_RefNannyDeclarations
25818 PyObject *__pyx_t_1 = NULL;
25819 __Pyx_RefNannySetupContext(
"PyArray_MultiIterNew4", 0);
25828 __Pyx_XDECREF(__pyx_r);
25829 __pyx_t_1 = PyArray_MultiIterNew(4, ((
void *)__pyx_v_a), ((
void *)__pyx_v_b), ((
void *)__pyx_v_c), ((
void *)__pyx_v_d));
if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 831, __pyx_L1_error)
25830 __Pyx_GOTREF(__pyx_t_1);
25831 __pyx_r = __pyx_t_1;
25845 __Pyx_XDECREF(__pyx_t_1);
25846 __Pyx_AddTraceback(
"numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename);
25849 __Pyx_XGIVEREF(__pyx_r);
25850 __Pyx_RefNannyFinishContext();
25862 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) {
25863 PyObject *__pyx_r = NULL;
25864 __Pyx_RefNannyDeclarations
25865 PyObject *__pyx_t_1 = NULL;
25866 __Pyx_RefNannySetupContext(
"PyArray_MultiIterNew5", 0);
25875 __Pyx_XDECREF(__pyx_r);
25876 __pyx_t_1 = PyArray_MultiIterNew(5, ((
void *)__pyx_v_a), ((
void *)__pyx_v_b), ((
void *)__pyx_v_c), ((
void *)__pyx_v_d), ((
void *)__pyx_v_e));
if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 834, __pyx_L1_error)
25877 __Pyx_GOTREF(__pyx_t_1);
25878 __pyx_r = __pyx_t_1;
25892 __Pyx_XDECREF(__pyx_t_1);
25893 __Pyx_AddTraceback(
"numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename);
25896 __Pyx_XGIVEREF(__pyx_r);
25897 __Pyx_RefNannyFinishContext();
25909 static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) {
25910 PyObject *__pyx_r = NULL;
25911 __Pyx_RefNannyDeclarations
25913 __Pyx_RefNannySetupContext(
"PyDataType_SHAPE", 0);
25922 __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0);
25932 __Pyx_XDECREF(__pyx_r);
25933 __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape));
25934 __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape);
25954 __Pyx_XDECREF(__pyx_r);
25955 __Pyx_INCREF(__pyx_empty_tuple);
25956 __pyx_r = __pyx_empty_tuple;
25970 __Pyx_XGIVEREF(__pyx_r);
25971 __Pyx_RefNannyFinishContext();
25983 static CYTHON_INLINE
char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr,
char *__pyx_v_f,
char *__pyx_v_end,
int *__pyx_v_offset) {
25984 PyArray_Descr *__pyx_v_child = 0;
25985 int __pyx_v_endian_detector;
25986 int __pyx_v_little_endian;
25987 PyObject *__pyx_v_fields = 0;
25988 PyObject *__pyx_v_childname = NULL;
25989 PyObject *__pyx_v_new_offset = NULL;
25990 PyObject *__pyx_v_t = NULL;
25992 __Pyx_RefNannyDeclarations
25993 PyObject *__pyx_t_1 = NULL;
25994 Py_ssize_t __pyx_t_2;
25995 PyObject *__pyx_t_3 = NULL;
25996 PyObject *__pyx_t_4 = NULL;
26002 __Pyx_RefNannySetupContext(
"_util_dtypestring", 0);
26011 __pyx_v_endian_detector = 1;
26020 __pyx_v_little_endian = ((((
char *)(&__pyx_v_endian_detector))[0]) != 0);
26029 if (unlikely(__pyx_v_descr->names == Py_None)) {
26030 PyErr_SetString(PyExc_TypeError,
"'NoneType' object is not iterable");
26031 __PYX_ERR(1, 851, __pyx_L1_error)
26033 __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
26035 if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1))
break;
26036 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 26037 __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++;
if (unlikely(0 < 0)) __PYX_ERR(1, 851, __pyx_L1_error)
26039 __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++;
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 851, __pyx_L1_error)
26040 __Pyx_GOTREF(__pyx_t_3);
26042 __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3);
26052 if (unlikely(__pyx_v_descr->fields == Py_None)) {
26053 PyErr_SetString(PyExc_TypeError,
"'NoneType' object is not subscriptable");
26054 __PYX_ERR(1, 852, __pyx_L1_error)
26056 __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 852, __pyx_L1_error)
26057 __Pyx_GOTREF(__pyx_t_3);
26058 if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError,
"Expected %.16s, got %.200s",
"tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(1, 852, __pyx_L1_error)
26059 __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3));
26069 if (likely(__pyx_v_fields != Py_None)) {
26070 PyObject* sequence = __pyx_v_fields;
26071 Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
26072 if (unlikely(size != 2)) {
26073 if (size > 2) __Pyx_RaiseTooManyValuesError(2);
26074 else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
26075 __PYX_ERR(1, 853, __pyx_L1_error)
26077 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 26078 __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
26079 __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
26080 __Pyx_INCREF(__pyx_t_3);
26081 __Pyx_INCREF(__pyx_t_4);
26083 __pyx_t_3 = PySequence_ITEM(sequence, 0);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 853, __pyx_L1_error)
26084 __Pyx_GOTREF(__pyx_t_3);
26085 __pyx_t_4 = PySequence_ITEM(sequence, 1);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 853, __pyx_L1_error)
26086 __Pyx_GOTREF(__pyx_t_4);
26089 __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 853, __pyx_L1_error)
26091 if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 853, __pyx_L1_error)
26092 __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3));
26094 __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4);
26104 __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_offset[0]));
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 855, __pyx_L1_error)
26105 __Pyx_GOTREF(__pyx_t_4);
26106 __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 855, __pyx_L1_error)
26107 __Pyx_GOTREF(__pyx_t_3);
26108 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26109 __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3);
if (unlikely((__pyx_t_5 == (
int)-1) && PyErr_Occurred())) __PYX_ERR(1, 855, __pyx_L1_error)
26110 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26111 __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((
int)__pyx_t_5)) < 15) != 0);
26112 if (unlikely(__pyx_t_6)) {
26121 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__10, NULL);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 856, __pyx_L1_error)
26122 __Pyx_GOTREF(__pyx_t_3);
26123 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
26124 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26125 __PYX_ERR(1, 856, __pyx_L1_error)
26143 __pyx_t_7 = ((__pyx_v_child->byteorder ==
'>') != 0);
26145 goto __pyx_L8_next_or;
26148 __pyx_t_7 = (__pyx_v_little_endian != 0);
26151 __pyx_t_6 = __pyx_t_7;
26152 goto __pyx_L7_bool_binop_done;
26163 __pyx_t_7 = ((__pyx_v_child->byteorder ==
'<') != 0);
26166 __pyx_t_6 = __pyx_t_7;
26167 goto __pyx_L7_bool_binop_done;
26169 __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0);
26170 __pyx_t_6 = __pyx_t_7;
26171 __pyx_L7_bool_binop_done:;
26180 if (unlikely(__pyx_t_6)) {
26189 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__9, NULL);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 860, __pyx_L1_error)
26190 __Pyx_GOTREF(__pyx_t_3);
26191 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
26192 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26193 __PYX_ERR(1, 860, __pyx_L1_error)
26212 __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0]));
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 870, __pyx_L1_error)
26213 __Pyx_GOTREF(__pyx_t_3);
26214 __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 870, __pyx_L1_error)
26215 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26216 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 870, __pyx_L1_error)
26217 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26218 if (!__pyx_t_6)
break;
26227 (__pyx_v_f[0]) = 0x78;
26236 __pyx_v_f = (__pyx_v_f + 1);
26246 (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1);
26257 (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize);
26266 __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0);
26276 __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 878, __pyx_L1_error)
26277 __Pyx_GOTREF(__pyx_t_4);
26278 __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4);
26288 __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0);
26289 if (unlikely(__pyx_t_6)) {
26298 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__11, NULL);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 880, __pyx_L1_error)
26299 __Pyx_GOTREF(__pyx_t_4);
26300 __Pyx_Raise(__pyx_t_4, 0, 0, 0);
26301 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26302 __PYX_ERR(1, 880, __pyx_L1_error)
26320 __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 883, __pyx_L1_error)
26321 __Pyx_GOTREF(__pyx_t_4);
26322 __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 883, __pyx_L1_error)
26323 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26324 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 883, __pyx_L1_error)
26325 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26327 (__pyx_v_f[0]) = 98;
26338 __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 884, __pyx_L1_error)
26339 __Pyx_GOTREF(__pyx_t_3);
26340 __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 884, __pyx_L1_error)
26341 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26342 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 884, __pyx_L1_error)
26343 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26345 (__pyx_v_f[0]) = 66;
26356 __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 885, __pyx_L1_error)
26357 __Pyx_GOTREF(__pyx_t_4);
26358 __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 885, __pyx_L1_error)
26359 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26360 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 885, __pyx_L1_error)
26361 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26363 (__pyx_v_f[0]) = 0x68;
26374 __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 886, __pyx_L1_error)
26375 __Pyx_GOTREF(__pyx_t_3);
26376 __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 886, __pyx_L1_error)
26377 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26378 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 886, __pyx_L1_error)
26379 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26381 (__pyx_v_f[0]) = 72;
26392 __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 887, __pyx_L1_error)
26393 __Pyx_GOTREF(__pyx_t_4);
26394 __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 887, __pyx_L1_error)
26395 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26396 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 887, __pyx_L1_error)
26397 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26399 (__pyx_v_f[0]) = 0x69;
26410 __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 888, __pyx_L1_error)
26411 __Pyx_GOTREF(__pyx_t_3);
26412 __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 888, __pyx_L1_error)
26413 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26414 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 888, __pyx_L1_error)
26415 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26417 (__pyx_v_f[0]) = 73;
26428 __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 889, __pyx_L1_error)
26429 __Pyx_GOTREF(__pyx_t_4);
26430 __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 889, __pyx_L1_error)
26431 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26432 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 889, __pyx_L1_error)
26433 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26435 (__pyx_v_f[0]) = 0x6C;
26446 __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 890, __pyx_L1_error)
26447 __Pyx_GOTREF(__pyx_t_3);
26448 __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 890, __pyx_L1_error)
26449 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26450 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 890, __pyx_L1_error)
26451 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26453 (__pyx_v_f[0]) = 76;
26464 __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 891, __pyx_L1_error)
26465 __Pyx_GOTREF(__pyx_t_4);
26466 __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 891, __pyx_L1_error)
26467 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26468 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 891, __pyx_L1_error)
26469 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26471 (__pyx_v_f[0]) = 0x71;
26482 __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 892, __pyx_L1_error)
26483 __Pyx_GOTREF(__pyx_t_3);
26484 __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 892, __pyx_L1_error)
26485 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26486 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 892, __pyx_L1_error)
26487 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26489 (__pyx_v_f[0]) = 81;
26500 __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 893, __pyx_L1_error)
26501 __Pyx_GOTREF(__pyx_t_4);
26502 __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 893, __pyx_L1_error)
26503 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26504 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 893, __pyx_L1_error)
26505 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26507 (__pyx_v_f[0]) = 0x66;
26518 __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 894, __pyx_L1_error)
26519 __Pyx_GOTREF(__pyx_t_3);
26520 __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 894, __pyx_L1_error)
26521 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26522 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 894, __pyx_L1_error)
26523 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26525 (__pyx_v_f[0]) = 0x64;
26536 __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 895, __pyx_L1_error)
26537 __Pyx_GOTREF(__pyx_t_4);
26538 __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 895, __pyx_L1_error)
26539 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26540 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 895, __pyx_L1_error)
26541 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26543 (__pyx_v_f[0]) = 0x67;
26554 __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 896, __pyx_L1_error)
26555 __Pyx_GOTREF(__pyx_t_3);
26556 __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 896, __pyx_L1_error)
26557 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26558 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 896, __pyx_L1_error)
26559 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26561 (__pyx_v_f[0]) = 90;
26562 (__pyx_v_f[1]) = 0x66;
26563 __pyx_v_f = (__pyx_v_f + 1);
26574 __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 897, __pyx_L1_error)
26575 __Pyx_GOTREF(__pyx_t_4);
26576 __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 897, __pyx_L1_error)
26577 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26578 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 897, __pyx_L1_error)
26579 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26581 (__pyx_v_f[0]) = 90;
26582 (__pyx_v_f[1]) = 0x64;
26583 __pyx_v_f = (__pyx_v_f + 1);
26594 __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 898, __pyx_L1_error)
26595 __Pyx_GOTREF(__pyx_t_3);
26596 __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 898, __pyx_L1_error)
26597 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26598 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 898, __pyx_L1_error)
26599 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26601 (__pyx_v_f[0]) = 90;
26602 (__pyx_v_f[1]) = 0x67;
26603 __pyx_v_f = (__pyx_v_f + 1);
26614 __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 899, __pyx_L1_error)
26615 __Pyx_GOTREF(__pyx_t_4);
26616 __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 899, __pyx_L1_error)
26617 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26618 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3);
if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 899, __pyx_L1_error)
26619 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26620 if (likely(__pyx_t_6)) {
26621 (__pyx_v_f[0]) = 79;
26633 __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t);
if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 901, __pyx_L1_error)
26634 __Pyx_GOTREF(__pyx_t_3);
26635 __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3);
if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 901, __pyx_L1_error)
26636 __Pyx_GOTREF(__pyx_t_4);
26637 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
26638 __Pyx_Raise(__pyx_t_4, 0, 0, 0);
26639 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26640 __PYX_ERR(1, 901, __pyx_L1_error)
26651 __pyx_v_f = (__pyx_v_f + 1);
26671 __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset);
if (unlikely(__pyx_t_9 == ((
char *)NULL))) __PYX_ERR(1, 906, __pyx_L1_error)
26672 __pyx_v_f = __pyx_t_9;
26684 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
26693 __pyx_r = __pyx_v_f;
26706 __Pyx_XDECREF(__pyx_t_1);
26707 __Pyx_XDECREF(__pyx_t_3);
26708 __Pyx_XDECREF(__pyx_t_4);
26709 __Pyx_AddTraceback(
"numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename);
26712 __Pyx_XDECREF((PyObject *)__pyx_v_child);
26713 __Pyx_XDECREF(__pyx_v_fields);
26714 __Pyx_XDECREF(__pyx_v_childname);
26715 __Pyx_XDECREF(__pyx_v_new_offset);
26716 __Pyx_XDECREF(__pyx_v_t);
26717 __Pyx_RefNannyFinishContext();
26729 static CYTHON_INLINE
void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) {
26730 __Pyx_RefNannyDeclarations
26731 __Pyx_RefNannySetupContext(
"set_array_base", 0);
26740 Py_INCREF(__pyx_v_base);
26749 (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base));
26760 __Pyx_RefNannyFinishContext();
26771 static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) {
26772 PyObject *__pyx_v_base;
26773 PyObject *__pyx_r = NULL;
26774 __Pyx_RefNannyDeclarations
26776 __Pyx_RefNannySetupContext(
"get_array_base", 0);
26785 __pyx_v_base = PyArray_BASE(__pyx_v_arr);
26794 __pyx_t_1 = ((__pyx_v_base == NULL) != 0);
26804 __Pyx_XDECREF(__pyx_r);
26805 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
26824 __Pyx_XDECREF(__pyx_r);
26825 __Pyx_INCREF(((PyObject *)__pyx_v_base));
26826 __pyx_r = ((PyObject *)__pyx_v_base);
26839 __Pyx_XGIVEREF(__pyx_r);
26840 __Pyx_RefNannyFinishContext();
26852 static CYTHON_INLINE
int __pyx_f_5numpy_import_array(
void) {
26854 __Pyx_RefNannyDeclarations
26855 PyObject *__pyx_t_1 = NULL;
26856 PyObject *__pyx_t_2 = NULL;
26857 PyObject *__pyx_t_3 = NULL;
26859 PyObject *__pyx_t_5 = NULL;
26860 PyObject *__pyx_t_6 = NULL;
26861 PyObject *__pyx_t_7 = NULL;
26862 PyObject *__pyx_t_8 = NULL;
26863 __Pyx_RefNannySetupContext(
"import_array", 0);
26873 __Pyx_PyThreadState_declare
26874 __Pyx_PyThreadState_assign
26875 __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
26876 __Pyx_XGOTREF(__pyx_t_1);
26877 __Pyx_XGOTREF(__pyx_t_2);
26878 __Pyx_XGOTREF(__pyx_t_3);
26888 __pyx_t_4 = _import_array();
if (unlikely(__pyx_t_4 == ((
int)-1))) __PYX_ERR(1, 1036, __pyx_L3_error)
26898 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
26899 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
26900 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
26901 goto __pyx_L8_try_end;
26911 __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
26913 __Pyx_AddTraceback(
"numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
26914 if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1037, __pyx_L5_except_error)
26915 __Pyx_GOTREF(__pyx_t_5);
26916 __Pyx_GOTREF(__pyx_t_6);
26917 __Pyx_GOTREF(__pyx_t_7);
26926 __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__12, NULL);
if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1038, __pyx_L5_except_error)
26927 __Pyx_GOTREF(__pyx_t_8);
26928 __Pyx_Raise(__pyx_t_8, 0, 0, 0);
26929 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
26930 __PYX_ERR(1, 1038, __pyx_L5_except_error)
26932 goto __pyx_L5_except_error;
26933 __pyx_L5_except_error:;
26942 __Pyx_XGIVEREF(__pyx_t_1);
26943 __Pyx_XGIVEREF(__pyx_t_2);
26944 __Pyx_XGIVEREF(__pyx_t_3);
26945 __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
26946 goto __pyx_L1_error;
26962 __Pyx_XDECREF(__pyx_t_5);
26963 __Pyx_XDECREF(__pyx_t_6);
26964 __Pyx_XDECREF(__pyx_t_7);
26965 __Pyx_XDECREF(__pyx_t_8);
26966 __Pyx_AddTraceback(
"numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
26969 __Pyx_RefNannyFinishContext();
26981 static CYTHON_INLINE
int __pyx_f_5numpy_import_umath(
void) {
26983 __Pyx_RefNannyDeclarations
26984 PyObject *__pyx_t_1 = NULL;
26985 PyObject *__pyx_t_2 = NULL;
26986 PyObject *__pyx_t_3 = NULL;
26988 PyObject *__pyx_t_5 = NULL;
26989 PyObject *__pyx_t_6 = NULL;
26990 PyObject *__pyx_t_7 = NULL;
26991 PyObject *__pyx_t_8 = NULL;
26992 __Pyx_RefNannySetupContext(
"import_umath", 0);
27002 __Pyx_PyThreadState_declare
27003 __Pyx_PyThreadState_assign
27004 __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
27005 __Pyx_XGOTREF(__pyx_t_1);
27006 __Pyx_XGOTREF(__pyx_t_2);
27007 __Pyx_XGOTREF(__pyx_t_3);
27017 __pyx_t_4 = _import_umath();
if (unlikely(__pyx_t_4 == ((
int)-1))) __PYX_ERR(1, 1042, __pyx_L3_error)
27027 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
27028 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
27029 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
27030 goto __pyx_L8_try_end;
27040 __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
27042 __Pyx_AddTraceback(
"numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
27043 if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1043, __pyx_L5_except_error)
27044 __Pyx_GOTREF(__pyx_t_5);
27045 __Pyx_GOTREF(__pyx_t_6);
27046 __Pyx_GOTREF(__pyx_t_7);
27055 __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__13, NULL);
if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1044, __pyx_L5_except_error)
27056 __Pyx_GOTREF(__pyx_t_8);
27057 __Pyx_Raise(__pyx_t_8, 0, 0, 0);
27058 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
27059 __PYX_ERR(1, 1044, __pyx_L5_except_error)
27061 goto __pyx_L5_except_error;
27062 __pyx_L5_except_error:;
27071 __Pyx_XGIVEREF(__pyx_t_1);
27072 __Pyx_XGIVEREF(__pyx_t_2);
27073 __Pyx_XGIVEREF(__pyx_t_3);
27074 __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
27075 goto __pyx_L1_error;
27091 __Pyx_XDECREF(__pyx_t_5);
27092 __Pyx_XDECREF(__pyx_t_6);
27093 __Pyx_XDECREF(__pyx_t_7);
27094 __Pyx_XDECREF(__pyx_t_8);
27095 __Pyx_AddTraceback(
"numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
27098 __Pyx_RefNannyFinishContext();
27110 static CYTHON_INLINE
int __pyx_f_5numpy_import_ufunc(
void) {
27112 __Pyx_RefNannyDeclarations
27113 PyObject *__pyx_t_1 = NULL;
27114 PyObject *__pyx_t_2 = NULL;
27115 PyObject *__pyx_t_3 = NULL;
27117 PyObject *__pyx_t_5 = NULL;
27118 PyObject *__pyx_t_6 = NULL;
27119 PyObject *__pyx_t_7 = NULL;
27120 PyObject *__pyx_t_8 = NULL;
27121 __Pyx_RefNannySetupContext(
"import_ufunc", 0);
27131 __Pyx_PyThreadState_declare
27132 __Pyx_PyThreadState_assign
27133 __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
27134 __Pyx_XGOTREF(__pyx_t_1);
27135 __Pyx_XGOTREF(__pyx_t_2);
27136 __Pyx_XGOTREF(__pyx_t_3);
27146 __pyx_t_4 = _import_umath();
if (unlikely(__pyx_t_4 == ((
int)-1))) __PYX_ERR(1, 1048, __pyx_L3_error)
27156 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
27157 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
27158 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
27159 goto __pyx_L8_try_end;
27168 __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
27170 __Pyx_AddTraceback(
"numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
27171 if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1049, __pyx_L5_except_error)
27172 __Pyx_GOTREF(__pyx_t_5);
27173 __Pyx_GOTREF(__pyx_t_6);
27174 __Pyx_GOTREF(__pyx_t_7);
27181 __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__13, NULL);
if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1050, __pyx_L5_except_error)
27182 __Pyx_GOTREF(__pyx_t_8);
27183 __Pyx_Raise(__pyx_t_8, 0, 0, 0);
27184 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
27185 __PYX_ERR(1, 1050, __pyx_L5_except_error)
27187 goto __pyx_L5_except_error;
27188 __pyx_L5_except_error:;
27197 __Pyx_XGIVEREF(__pyx_t_1);
27198 __Pyx_XGIVEREF(__pyx_t_2);
27199 __Pyx_XGIVEREF(__pyx_t_3);
27200 __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
27201 goto __pyx_L1_error;
27217 __Pyx_XDECREF(__pyx_t_5);
27218 __Pyx_XDECREF(__pyx_t_6);
27219 __Pyx_XDECREF(__pyx_t_7);
27220 __Pyx_XDECREF(__pyx_t_8);
27221 __Pyx_AddTraceback(
"numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
27224 __Pyx_RefNannyFinishContext();
27237 static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
27238 static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
27239 PyObject *__pyx_v_shape = 0;
27240 Py_ssize_t __pyx_v_itemsize;
27241 PyObject *__pyx_v_format = 0;
27242 PyObject *__pyx_v_mode = 0;
27243 int __pyx_v_allocate_buffer;
27245 __Pyx_RefNannyDeclarations
27246 __Pyx_RefNannySetupContext(
"__cinit__ (wrapper)", 0);
27248 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_shape,&__pyx_n_s_itemsize,&__pyx_n_s_format,&__pyx_n_s_mode,&__pyx_n_s_allocate_buffer,0};
27249 PyObject* values[5] = {0,0,0,0,0};
27250 values[3] = ((PyObject *)__pyx_n_s_c);
27251 if (unlikely(__pyx_kwds)) {
27252 Py_ssize_t kw_args;
27253 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
27254 switch (pos_args) {
27255 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
27256 CYTHON_FALLTHROUGH;
27257 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
27258 CYTHON_FALLTHROUGH;
27259 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
27260 CYTHON_FALLTHROUGH;
27261 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
27262 CYTHON_FALLTHROUGH;
27263 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
27264 CYTHON_FALLTHROUGH;
27266 default:
goto __pyx_L5_argtuple_error;
27268 kw_args = PyDict_Size(__pyx_kwds);
27269 switch (pos_args) {
27271 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_shape)) != 0)) kw_args--;
27272 else goto __pyx_L5_argtuple_error;
27273 CYTHON_FALLTHROUGH;
27275 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_itemsize)) != 0)) kw_args--;
27277 __Pyx_RaiseArgtupleInvalid(
"__cinit__", 0, 3, 5, 1); __PYX_ERR(2, 122, __pyx_L3_error)
27279 CYTHON_FALLTHROUGH;
27281 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_format)) != 0)) kw_args--;
27283 __Pyx_RaiseArgtupleInvalid(
"__cinit__", 0, 3, 5, 2); __PYX_ERR(2, 122, __pyx_L3_error)
27285 CYTHON_FALLTHROUGH;
27288 PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode);
27289 if (value) { values[3] = value; kw_args--; }
27291 CYTHON_FALLTHROUGH;
27294 PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allocate_buffer);
27295 if (value) { values[4] = value; kw_args--; }
27298 if (unlikely(kw_args > 0)) {
27299 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"__cinit__") < 0)) __PYX_ERR(2, 122, __pyx_L3_error)
27302 switch (PyTuple_GET_SIZE(__pyx_args)) {
27303 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
27304 CYTHON_FALLTHROUGH;
27305 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
27306 CYTHON_FALLTHROUGH;
27307 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
27308 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
27309 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
27311 default:
goto __pyx_L5_argtuple_error;
27314 __pyx_v_shape = ((PyObject*)values[0]);
27315 __pyx_v_itemsize = __Pyx_PyIndex_AsSsize_t(values[1]);
if (unlikely((__pyx_v_itemsize == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 122, __pyx_L3_error)
27316 __pyx_v_format = values[2];
27317 __pyx_v_mode = values[3];
27319 __pyx_v_allocate_buffer = __Pyx_PyObject_IsTrue(values[4]);
if (unlikely((__pyx_v_allocate_buffer == (
int)-1) && PyErr_Occurred())) __PYX_ERR(2, 123, __pyx_L3_error)
27329 __pyx_v_allocate_buffer = ((int)1);
27332 goto __pyx_L4_argument_unpacking_done;
27333 __pyx_L5_argtuple_error:;
27334 __Pyx_RaiseArgtupleInvalid(
"__cinit__", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 122, __pyx_L3_error)
27336 __Pyx_AddTraceback(
"View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27337 __Pyx_RefNannyFinishContext();
27339 __pyx_L4_argument_unpacking_done:;
27340 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_shape), (&PyTuple_Type), 1,
"shape", 1))) __PYX_ERR(2, 122, __pyx_L1_error)
27341 if (unlikely(((PyObject *)__pyx_v_format) == Py_None)) {
27342 PyErr_Format(PyExc_TypeError,
"Argument '%.200s' must not be None",
"format"); __PYX_ERR(2, 122, __pyx_L1_error)
27344 __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(((
struct __pyx_array_obj *)__pyx_v_self), __pyx_v_shape, __pyx_v_itemsize, __pyx_v_format, __pyx_v_mode, __pyx_v_allocate_buffer);
27359 __Pyx_RefNannyFinishContext();
27363 static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(
struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode,
int __pyx_v_allocate_buffer) {
27365 Py_ssize_t __pyx_v_i;
27366 Py_ssize_t __pyx_v_dim;
27367 PyObject **__pyx_v_p;
27368 char __pyx_v_order;
27370 __Pyx_RefNannyDeclarations
27371 Py_ssize_t __pyx_t_1;
27373 PyObject *__pyx_t_3 = NULL;
27375 PyObject *__pyx_t_5 = NULL;
27376 PyObject *__pyx_t_6 = NULL;
27379 Py_ssize_t __pyx_t_9;
27380 PyObject *__pyx_t_10 = NULL;
27381 Py_ssize_t __pyx_t_11;
27382 __Pyx_RefNannySetupContext(
"__cinit__", 0);
27383 __Pyx_INCREF(__pyx_v_format);
27392 if (unlikely(__pyx_v_shape == Py_None)) {
27393 PyErr_SetString(PyExc_TypeError,
"object of type 'NoneType' has no len()");
27394 __PYX_ERR(2, 129, __pyx_L1_error)
27396 __pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_shape);
if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(2, 129, __pyx_L1_error)
27397 __pyx_v_self->ndim = ((int)__pyx_t_1);
27406 __pyx_v_self->itemsize = __pyx_v_itemsize;
27415 __pyx_t_2 = ((!(__pyx_v_self->ndim != 0)) != 0);
27416 if (unlikely(__pyx_t_2)) {
27425 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 133, __pyx_L1_error)
27426 __Pyx_GOTREF(__pyx_t_3);
27427 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
27428 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
27429 __PYX_ERR(2, 133, __pyx_L1_error)
27447 __pyx_t_2 = ((__pyx_v_itemsize <= 0) != 0);
27448 if (unlikely(__pyx_t_2)) {
27457 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__15, NULL);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 136, __pyx_L1_error)
27458 __Pyx_GOTREF(__pyx_t_3);
27459 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
27460 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
27461 __PYX_ERR(2, 136, __pyx_L1_error)
27479 __pyx_t_2 = PyBytes_Check(__pyx_v_format);
27480 __pyx_t_4 = ((!(__pyx_t_2 != 0)) != 0);
27490 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_format, __pyx_n_s_encode);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 139, __pyx_L1_error)
27491 __Pyx_GOTREF(__pyx_t_5);
27493 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
27494 __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
27495 if (likely(__pyx_t_6)) {
27496 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_5);
27497 __Pyx_INCREF(__pyx_t_6);
27498 __Pyx_INCREF(
function);
27499 __Pyx_DECREF_SET(__pyx_t_5,
function);
27502 __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_n_s_ASCII) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_n_s_ASCII);
27503 __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
27504 if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 139, __pyx_L1_error)
27505 __Pyx_GOTREF(__pyx_t_3);
27506 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
27507 __Pyx_DECREF_SET(__pyx_v_format, __pyx_t_3);
27526 if (!(likely(PyBytes_CheckExact(__pyx_v_format))||((__pyx_v_format) == Py_None)||(PyErr_Format(PyExc_TypeError,
"Expected %.16s, got %.200s",
"bytes", Py_TYPE(__pyx_v_format)->tp_name), 0))) __PYX_ERR(2, 140, __pyx_L1_error)
27527 __pyx_t_3 = __pyx_v_format;
27528 __Pyx_INCREF(__pyx_t_3);
27529 __Pyx_GIVEREF(__pyx_t_3);
27530 __Pyx_GOTREF(__pyx_v_self->_format);
27531 __Pyx_DECREF(__pyx_v_self->_format);
27532 __pyx_v_self->_format = ((PyObject*)__pyx_t_3);
27542 if (unlikely(__pyx_v_self->_format == Py_None)) {
27543 PyErr_SetString(PyExc_TypeError,
"expected bytes, NoneType found");
27544 __PYX_ERR(2, 141, __pyx_L1_error)
27546 __pyx_t_7 = __Pyx_PyBytes_AsWritableString(__pyx_v_self->_format);
if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(2, 141, __pyx_L1_error)
27547 __pyx_v_self->format = __pyx_t_7;
27556 __pyx_v_self->_shape = ((Py_ssize_t *)PyObject_Malloc((((
sizeof(Py_ssize_t)) * __pyx_v_self->ndim) * 2)));
27565 __pyx_v_self->_strides = (__pyx_v_self->_shape + __pyx_v_self->ndim);
27574 __pyx_t_4 = ((!(__pyx_v_self->_shape != 0)) != 0);
27575 if (unlikely(__pyx_t_4)) {
27584 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__16, NULL);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 148, __pyx_L1_error)
27585 __Pyx_GOTREF(__pyx_t_3);
27586 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
27587 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
27588 __PYX_ERR(2, 148, __pyx_L1_error)
27607 __pyx_t_3 = __pyx_v_shape; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = 0;
27609 if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3))
break;
27610 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 27611 __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_5); __pyx_t_1++;
if (unlikely(0 < 0)) __PYX_ERR(2, 151, __pyx_L1_error)
27613 __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++;
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 151, __pyx_L1_error)
27614 __Pyx_GOTREF(__pyx_t_5);
27616 __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5);
if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 151, __pyx_L1_error)
27617 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
27618 __pyx_v_dim = __pyx_t_9;
27619 __pyx_v_idx = __pyx_t_8;
27620 __pyx_t_8 = (__pyx_t_8 + 1);
27629 __pyx_t_4 = ((__pyx_v_dim <= 0) != 0);
27630 if (unlikely(__pyx_t_4)) {
27639 __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_idx);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 153, __pyx_L1_error)
27640 __Pyx_GOTREF(__pyx_t_5);
27641 __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_dim);
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 153, __pyx_L1_error)
27642 __Pyx_GOTREF(__pyx_t_6);
27643 __pyx_t_10 = PyTuple_New(2);
if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 153, __pyx_L1_error)
27644 __Pyx_GOTREF(__pyx_t_10);
27645 __Pyx_GIVEREF(__pyx_t_5);
27646 PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5);
27647 __Pyx_GIVEREF(__pyx_t_6);
27648 PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_6);
27651 __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_t_10);
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 153, __pyx_L1_error)
27652 __Pyx_GOTREF(__pyx_t_6);
27653 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
27654 __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6);
if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 153, __pyx_L1_error)
27655 __Pyx_GOTREF(__pyx_t_10);
27656 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
27657 __Pyx_Raise(__pyx_t_10, 0, 0, 0);
27658 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
27659 __PYX_ERR(2, 153, __pyx_L1_error)
27677 (__pyx_v_self->_shape[__pyx_v_idx]) = __pyx_v_dim;
27687 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
27696 __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_fortran, Py_EQ));
if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 157, __pyx_L1_error)
27706 __pyx_v_order =
'F';
27715 __Pyx_INCREF(__pyx_n_u_fortran);
27716 __Pyx_GIVEREF(__pyx_n_u_fortran);
27717 __Pyx_GOTREF(__pyx_v_self->mode);
27718 __Pyx_DECREF(__pyx_v_self->mode);
27719 __pyx_v_self->mode = __pyx_n_u_fortran;
27738 __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_c, Py_EQ));
if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 160, __pyx_L1_error)
27739 if (likely(__pyx_t_4)) {
27748 __pyx_v_order =
'C';
27757 __Pyx_INCREF(__pyx_n_u_c);
27758 __Pyx_GIVEREF(__pyx_n_u_c);
27759 __Pyx_GOTREF(__pyx_v_self->mode);
27760 __Pyx_DECREF(__pyx_v_self->mode);
27761 __pyx_v_self->mode = __pyx_n_u_c;
27781 __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_v_mode);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 164, __pyx_L1_error)
27782 __Pyx_GOTREF(__pyx_t_3);
27783 __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3);
if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 164, __pyx_L1_error)
27784 __Pyx_GOTREF(__pyx_t_10);
27785 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
27786 __Pyx_Raise(__pyx_t_10, 0, 0, 0);
27787 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
27788 __PYX_ERR(2, 164, __pyx_L1_error)
27799 __pyx_v_self->len = __pyx_fill_contig_strides_array(__pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_itemsize, __pyx_v_self->ndim, __pyx_v_order);
27808 __pyx_v_self->free_data = __pyx_v_allocate_buffer;
27817 __pyx_t_10 = PyObject_RichCompare(__pyx_v_format, __pyx_n_b_O, Py_EQ); __Pyx_XGOTREF(__pyx_t_10);
if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 170, __pyx_L1_error)
27818 __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_10);
if (unlikely((__pyx_t_4 == (
int)-1) && PyErr_Occurred())) __PYX_ERR(2, 170, __pyx_L1_error)
27819 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
27820 __pyx_v_self->dtype_is_object = __pyx_t_4;
27829 __pyx_t_4 = (__pyx_v_allocate_buffer != 0);
27839 __pyx_v_self->data = ((
char *)malloc(__pyx_v_self->len));
27848 __pyx_t_4 = ((!(__pyx_v_self->data != 0)) != 0);
27849 if (unlikely(__pyx_t_4)) {
27858 __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__17, NULL);
if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 176, __pyx_L1_error)
27859 __Pyx_GOTREF(__pyx_t_10);
27860 __Pyx_Raise(__pyx_t_10, 0, 0, 0);
27861 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
27862 __PYX_ERR(2, 176, __pyx_L1_error)
27880 __pyx_t_4 = (__pyx_v_self->dtype_is_object != 0);
27890 __pyx_v_p = ((PyObject **)__pyx_v_self->data);
27899 if (unlikely(__pyx_v_itemsize == 0)) {
27900 PyErr_SetString(PyExc_ZeroDivisionError,
"integer division or modulo by zero");
27901 __PYX_ERR(2, 180, __pyx_L1_error)
27903 else if (
sizeof(Py_ssize_t) ==
sizeof(
long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_self->len))) {
27904 PyErr_SetString(PyExc_OverflowError,
"value too large to perform division");
27905 __PYX_ERR(2, 180, __pyx_L1_error)
27907 __pyx_t_1 = (__pyx_v_self->len / __pyx_v_itemsize);
27908 __pyx_t_9 = __pyx_t_1;
27909 for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_9; __pyx_t_11+=1) {
27910 __pyx_v_i = __pyx_t_11;
27919 (__pyx_v_p[__pyx_v_i]) = Py_None;
27928 Py_INCREF(Py_None);
27961 __Pyx_XDECREF(__pyx_t_3);
27962 __Pyx_XDECREF(__pyx_t_5);
27963 __Pyx_XDECREF(__pyx_t_6);
27964 __Pyx_XDECREF(__pyx_t_10);
27965 __Pyx_AddTraceback(
"View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27968 __Pyx_XDECREF(__pyx_v_format);
27969 __Pyx_RefNannyFinishContext();
27982 static CYTHON_UNUSED
int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info,
int __pyx_v_flags);
27983 static CYTHON_UNUSED
int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info,
int __pyx_v_flags) {
27985 __Pyx_RefNannyDeclarations
27986 __Pyx_RefNannySetupContext(
"__getbuffer__ (wrapper)", 0);
27987 __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(((
struct __pyx_array_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((
int)__pyx_v_flags));
27990 __Pyx_RefNannyFinishContext();
27994 static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(
struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info,
int __pyx_v_flags) {
27995 int __pyx_v_bufmode;
27997 __Pyx_RefNannyDeclarations
28000 PyObject *__pyx_t_3 = NULL;
28002 Py_ssize_t __pyx_t_5;
28004 Py_ssize_t *__pyx_t_7;
28005 if (__pyx_v_info == NULL) {
28006 PyErr_SetString(PyExc_BufferError,
"PyObject_GetBuffer: view==NULL argument is obsolete");
28009 __Pyx_RefNannySetupContext(
"__getbuffer__", 0);
28010 __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None);
28011 __Pyx_GIVEREF(__pyx_v_info->obj);
28020 __pyx_v_bufmode = -1;
28029 __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_c, Py_EQ));
if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 187, __pyx_L1_error)
28030 __pyx_t_2 = (__pyx_t_1 != 0);
28040 __pyx_v_bufmode = (PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS);
28059 __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_fortran, Py_EQ));
if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 189, __pyx_L1_error)
28060 __pyx_t_1 = (__pyx_t_2 != 0);
28070 __pyx_v_bufmode = (PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS);
28089 __pyx_t_1 = ((!((__pyx_v_flags & __pyx_v_bufmode) != 0)) != 0);
28090 if (unlikely(__pyx_t_1)) {
28099 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__18, NULL);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 192, __pyx_L1_error)
28100 __Pyx_GOTREF(__pyx_t_3);
28101 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
28102 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
28103 __PYX_ERR(2, 192, __pyx_L1_error)
28121 __pyx_t_4 = __pyx_v_self->data;
28122 __pyx_v_info->buf = __pyx_t_4;
28131 __pyx_t_5 = __pyx_v_self->len;
28132 __pyx_v_info->len = __pyx_t_5;
28141 __pyx_t_6 = __pyx_v_self->ndim;
28142 __pyx_v_info->ndim = __pyx_t_6;
28151 __pyx_t_7 = __pyx_v_self->_shape;
28152 __pyx_v_info->shape = __pyx_t_7;
28161 __pyx_t_7 = __pyx_v_self->_strides;
28162 __pyx_v_info->strides = __pyx_t_7;
28171 __pyx_v_info->suboffsets = NULL;
28180 __pyx_t_5 = __pyx_v_self->itemsize;
28181 __pyx_v_info->itemsize = __pyx_t_5;
28190 __pyx_v_info->readonly = 0;
28199 __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0);
28209 __pyx_t_4 = __pyx_v_self->format;
28210 __pyx_v_info->format = __pyx_t_4;
28230 __pyx_v_info->format = NULL;
28241 __Pyx_INCREF(((PyObject *)__pyx_v_self));
28242 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
28243 __Pyx_GOTREF(__pyx_v_info->obj);
28244 __Pyx_DECREF(__pyx_v_info->obj);
28245 __pyx_v_info->obj = ((PyObject *)__pyx_v_self);
28259 __Pyx_XDECREF(__pyx_t_3);
28260 __Pyx_AddTraceback(
"View.MemoryView.array.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28262 if (__pyx_v_info->obj != NULL) {
28263 __Pyx_GOTREF(__pyx_v_info->obj);
28264 __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
28268 if (__pyx_v_info->obj == Py_None) {
28269 __Pyx_GOTREF(__pyx_v_info->obj);
28270 __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
28273 __Pyx_RefNannyFinishContext();
28286 static void __pyx_array___dealloc__(PyObject *__pyx_v_self);
28287 static void __pyx_array___dealloc__(PyObject *__pyx_v_self) {
28288 __Pyx_RefNannyDeclarations
28289 __Pyx_RefNannySetupContext(
"__dealloc__ (wrapper)", 0);
28290 __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(((
struct __pyx_array_obj *)__pyx_v_self));
28293 __Pyx_RefNannyFinishContext();
28296 static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(
struct __pyx_array_obj *__pyx_v_self) {
28297 __Pyx_RefNannyDeclarations
28299 __Pyx_RefNannySetupContext(
"__dealloc__", 0);
28308 __pyx_t_1 = ((__pyx_v_self->callback_free_data != NULL) != 0);
28318 __pyx_v_self->callback_free_data(__pyx_v_self->data);
28337 __pyx_t_1 = (__pyx_v_self->free_data != 0);
28347 __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0);
28357 __pyx_memoryview_refcount_objects_in_slice(__pyx_v_self->data, __pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_self->ndim, 0);
28375 free(__pyx_v_self->data);
28394 PyObject_Free(__pyx_v_self->_shape);
28405 __Pyx_RefNannyFinishContext();
28417 static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self);
28418 static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self) {
28419 PyObject *__pyx_r = 0;
28420 __Pyx_RefNannyDeclarations
28421 __Pyx_RefNannySetupContext(
"__get__ (wrapper)", 0);
28422 __pyx_r = __pyx_pf_15View_dot_MemoryView_5array_7memview___get__(((
struct __pyx_array_obj *)__pyx_v_self));
28425 __Pyx_RefNannyFinishContext();
28429 static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(
struct __pyx_array_obj *__pyx_v_self) {
28430 PyObject *__pyx_r = NULL;
28431 __Pyx_RefNannyDeclarations
28432 PyObject *__pyx_t_1 = NULL;
28433 __Pyx_RefNannySetupContext(
"__get__", 0);
28442 __Pyx_XDECREF(__pyx_r);
28443 __pyx_t_1 = ((
struct __pyx_vtabstruct_array *)__pyx_v_self->__pyx_vtab)->get_memview(__pyx_v_self);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 223, __pyx_L1_error)
28444 __Pyx_GOTREF(__pyx_t_1);
28445 __pyx_r = __pyx_t_1;
28459 __Pyx_XDECREF(__pyx_t_1);
28460 __Pyx_AddTraceback(
"View.MemoryView.array.memview.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28463 __Pyx_XGIVEREF(__pyx_r);
28464 __Pyx_RefNannyFinishContext();
28476 static PyObject *__pyx_array_get_memview(
struct __pyx_array_obj *__pyx_v_self) {
28478 PyObject *__pyx_r = NULL;
28479 __Pyx_RefNannyDeclarations
28480 PyObject *__pyx_t_1 = NULL;
28481 PyObject *__pyx_t_2 = NULL;
28482 PyObject *__pyx_t_3 = NULL;
28483 __Pyx_RefNannySetupContext(
"get_memview", 0);
28492 __pyx_v_flags = ((PyBUF_ANY_CONTIGUOUS | PyBUF_FORMAT) | PyBUF_WRITABLE);
28501 __Pyx_XDECREF(__pyx_r);
28502 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 228, __pyx_L1_error)
28503 __Pyx_GOTREF(__pyx_t_1);
28504 __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 228, __pyx_L1_error)
28505 __Pyx_GOTREF(__pyx_t_2);
28506 __pyx_t_3 = PyTuple_New(3);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 228, __pyx_L1_error)
28507 __Pyx_GOTREF(__pyx_t_3);
28508 __Pyx_INCREF(((PyObject *)__pyx_v_self));
28509 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
28510 PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
28511 __Pyx_GIVEREF(__pyx_t_1);
28512 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
28513 __Pyx_GIVEREF(__pyx_t_2);
28514 PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2);
28517 __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 228, __pyx_L1_error)
28518 __Pyx_GOTREF(__pyx_t_2);
28519 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
28520 __pyx_r = __pyx_t_2;
28534 __Pyx_XDECREF(__pyx_t_1);
28535 __Pyx_XDECREF(__pyx_t_2);
28536 __Pyx_XDECREF(__pyx_t_3);
28537 __Pyx_AddTraceback(
"View.MemoryView.array.get_memview", __pyx_clineno, __pyx_lineno, __pyx_filename);
28540 __Pyx_XGIVEREF(__pyx_r);
28541 __Pyx_RefNannyFinishContext();
28554 static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self);
28555 static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self) {
28556 Py_ssize_t __pyx_r;
28557 __Pyx_RefNannyDeclarations
28558 __Pyx_RefNannySetupContext(
"__len__ (wrapper)", 0);
28559 __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(((
struct __pyx_array_obj *)__pyx_v_self));
28562 __Pyx_RefNannyFinishContext();
28566 static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(
struct __pyx_array_obj *__pyx_v_self) {
28567 Py_ssize_t __pyx_r;
28568 __Pyx_RefNannyDeclarations
28569 __Pyx_RefNannySetupContext(
"__len__", 0);
28578 __pyx_r = (__pyx_v_self->_shape[0]);
28591 __Pyx_RefNannyFinishContext();
28604 static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr);
28605 static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr) {
28606 PyObject *__pyx_r = 0;
28607 __Pyx_RefNannyDeclarations
28608 __Pyx_RefNannySetupContext(
"__getattr__ (wrapper)", 0);
28609 __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(((
struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_attr));
28612 __Pyx_RefNannyFinishContext();
28616 static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(
struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr) {
28617 PyObject *__pyx_r = NULL;
28618 __Pyx_RefNannyDeclarations
28619 PyObject *__pyx_t_1 = NULL;
28620 PyObject *__pyx_t_2 = NULL;
28621 __Pyx_RefNannySetupContext(
"__getattr__", 0);
28630 __Pyx_XDECREF(__pyx_r);
28631 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 234, __pyx_L1_error)
28632 __Pyx_GOTREF(__pyx_t_1);
28633 __pyx_t_2 = __Pyx_GetAttr(__pyx_t_1, __pyx_v_attr);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 234, __pyx_L1_error)
28634 __Pyx_GOTREF(__pyx_t_2);
28635 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
28636 __pyx_r = __pyx_t_2;
28650 __Pyx_XDECREF(__pyx_t_1);
28651 __Pyx_XDECREF(__pyx_t_2);
28652 __Pyx_AddTraceback(
"View.MemoryView.array.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28655 __Pyx_XGIVEREF(__pyx_r);
28656 __Pyx_RefNannyFinishContext();
28669 static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item);
28670 static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) {
28671 PyObject *__pyx_r = 0;
28672 __Pyx_RefNannyDeclarations
28673 __Pyx_RefNannySetupContext(
"__getitem__ (wrapper)", 0);
28674 __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(((
struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item));
28677 __Pyx_RefNannyFinishContext();
28681 static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(
struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item) {
28682 PyObject *__pyx_r = NULL;
28683 __Pyx_RefNannyDeclarations
28684 PyObject *__pyx_t_1 = NULL;
28685 PyObject *__pyx_t_2 = NULL;
28686 __Pyx_RefNannySetupContext(
"__getitem__", 0);
28695 __Pyx_XDECREF(__pyx_r);
28696 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 237, __pyx_L1_error)
28697 __Pyx_GOTREF(__pyx_t_1);
28698 __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_item);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 237, __pyx_L1_error)
28699 __Pyx_GOTREF(__pyx_t_2);
28700 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
28701 __pyx_r = __pyx_t_2;
28715 __Pyx_XDECREF(__pyx_t_1);
28716 __Pyx_XDECREF(__pyx_t_2);
28717 __Pyx_AddTraceback(
"View.MemoryView.array.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28720 __Pyx_XGIVEREF(__pyx_r);
28721 __Pyx_RefNannyFinishContext();
28734 static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value);
28735 static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) {
28737 __Pyx_RefNannyDeclarations
28738 __Pyx_RefNannySetupContext(
"__setitem__ (wrapper)", 0);
28739 __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(((
struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item), ((PyObject *)__pyx_v_value));
28742 __Pyx_RefNannyFinishContext();
28746 static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(
struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) {
28748 __Pyx_RefNannyDeclarations
28749 PyObject *__pyx_t_1 = NULL;
28750 __Pyx_RefNannySetupContext(
"__setitem__", 0);
28759 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 240, __pyx_L1_error)
28760 __Pyx_GOTREF(__pyx_t_1);
28761 if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_item, __pyx_v_value) < 0)) __PYX_ERR(2, 240, __pyx_L1_error)
28762 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
28776 __Pyx_XDECREF(__pyx_t_1);
28777 __Pyx_AddTraceback(
"View.MemoryView.array.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28780 __Pyx_RefNannyFinishContext();
28791 static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused);
28792 static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
28793 PyObject *__pyx_r = 0;
28794 __Pyx_RefNannyDeclarations
28795 __Pyx_RefNannySetupContext(
"__reduce_cython__ (wrapper)", 0);
28796 __pyx_r = __pyx_pf___pyx_array___reduce_cython__(((
struct __pyx_array_obj *)__pyx_v_self));
28799 __Pyx_RefNannyFinishContext();
28803 static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED
struct __pyx_array_obj *__pyx_v_self) {
28804 PyObject *__pyx_r = NULL;
28805 __Pyx_RefNannyDeclarations
28806 PyObject *__pyx_t_1 = NULL;
28807 __Pyx_RefNannySetupContext(
"__reduce_cython__", 0);
28815 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__19, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2, __pyx_L1_error)
28816 __Pyx_GOTREF(__pyx_t_1);
28817 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
28818 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
28819 __PYX_ERR(2, 2, __pyx_L1_error)
28829 __Pyx_XDECREF(__pyx_t_1);
28830 __Pyx_AddTraceback(
"View.MemoryView.array.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28832 __Pyx_XGIVEREF(__pyx_r);
28833 __Pyx_RefNannyFinishContext();
28845 static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state);
28846 static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
28847 PyObject *__pyx_r = 0;
28848 __Pyx_RefNannyDeclarations
28849 __Pyx_RefNannySetupContext(
"__setstate_cython__ (wrapper)", 0);
28850 __pyx_r = __pyx_pf___pyx_array_2__setstate_cython__(((
struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
28853 __Pyx_RefNannyFinishContext();
28857 static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED
struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
28858 PyObject *__pyx_r = NULL;
28859 __Pyx_RefNannyDeclarations
28860 PyObject *__pyx_t_1 = NULL;
28861 __Pyx_RefNannySetupContext(
"__setstate_cython__", 0);
28868 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__20, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error)
28869 __Pyx_GOTREF(__pyx_t_1);
28870 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
28871 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
28872 __PYX_ERR(2, 4, __pyx_L1_error)
28883 __Pyx_XDECREF(__pyx_t_1);
28884 __Pyx_AddTraceback(
"View.MemoryView.array.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
28886 __Pyx_XGIVEREF(__pyx_r);
28887 __Pyx_RefNannyFinishContext();
28899 static struct __pyx_array_obj *__pyx_array_new(PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize,
char *__pyx_v_format,
char *__pyx_v_mode,
char *__pyx_v_buf) {
28900 struct __pyx_array_obj *__pyx_v_result = 0;
28901 struct __pyx_array_obj *__pyx_r = NULL;
28902 __Pyx_RefNannyDeclarations
28904 PyObject *__pyx_t_2 = NULL;
28905 PyObject *__pyx_t_3 = NULL;
28906 PyObject *__pyx_t_4 = NULL;
28907 PyObject *__pyx_t_5 = NULL;
28908 __Pyx_RefNannySetupContext(
"array_cwrapper", 0);
28917 __pyx_t_1 = ((__pyx_v_buf == NULL) != 0);
28927 __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_itemsize);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 249, __pyx_L1_error)
28928 __Pyx_GOTREF(__pyx_t_2);
28929 __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_format);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 249, __pyx_L1_error)
28930 __Pyx_GOTREF(__pyx_t_3);
28931 __pyx_t_4 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 249, __pyx_L1_error)
28932 __Pyx_GOTREF(__pyx_t_4);
28933 __pyx_t_5 = PyTuple_New(4);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 249, __pyx_L1_error)
28934 __Pyx_GOTREF(__pyx_t_5);
28935 __Pyx_INCREF(__pyx_v_shape);
28936 __Pyx_GIVEREF(__pyx_v_shape);
28937 PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_shape);
28938 __Pyx_GIVEREF(__pyx_t_2);
28939 PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
28940 __Pyx_GIVEREF(__pyx_t_3);
28941 PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3);
28942 __Pyx_GIVEREF(__pyx_t_4);
28943 PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4);
28947 __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_5, NULL);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 249, __pyx_L1_error)
28948 __Pyx_GOTREF(__pyx_t_4);
28949 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
28950 __pyx_v_result = ((
struct __pyx_array_obj *)__pyx_t_4);
28971 __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_itemsize);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 251, __pyx_L1_error)
28972 __Pyx_GOTREF(__pyx_t_4);
28973 __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_format);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 251, __pyx_L1_error)
28974 __Pyx_GOTREF(__pyx_t_5);
28975 __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 251, __pyx_L1_error)
28976 __Pyx_GOTREF(__pyx_t_3);
28977 __pyx_t_2 = PyTuple_New(4);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 251, __pyx_L1_error)
28978 __Pyx_GOTREF(__pyx_t_2);
28979 __Pyx_INCREF(__pyx_v_shape);
28980 __Pyx_GIVEREF(__pyx_v_shape);
28981 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_shape);
28982 __Pyx_GIVEREF(__pyx_t_4);
28983 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
28984 __Pyx_GIVEREF(__pyx_t_5);
28985 PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5);
28986 __Pyx_GIVEREF(__pyx_t_3);
28987 PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_3);
28999 __pyx_t_3 = __Pyx_PyDict_NewPresized(1);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 252, __pyx_L1_error)
29000 __Pyx_GOTREF(__pyx_t_3);
29001 if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_allocate_buffer, Py_False) < 0) __PYX_ERR(2, 252, __pyx_L1_error)
29010 __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_2, __pyx_t_3);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 251, __pyx_L1_error)
29011 __Pyx_GOTREF(__pyx_t_5);
29012 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
29013 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
29014 __pyx_v_result = ((
struct __pyx_array_obj *)__pyx_t_5);
29024 __pyx_v_result->data = __pyx_v_buf;
29035 __Pyx_XDECREF(((PyObject *)__pyx_r));
29036 __Pyx_INCREF(((PyObject *)__pyx_v_result));
29037 __pyx_r = __pyx_v_result;
29050 __Pyx_XDECREF(__pyx_t_2);
29051 __Pyx_XDECREF(__pyx_t_3);
29052 __Pyx_XDECREF(__pyx_t_4);
29053 __Pyx_XDECREF(__pyx_t_5);
29054 __Pyx_AddTraceback(
"View.MemoryView.array_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
29057 __Pyx_XDECREF((PyObject *)__pyx_v_result);
29058 __Pyx_XGIVEREF((PyObject *)__pyx_r);
29059 __Pyx_RefNannyFinishContext();
29072 static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
29073 static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
29074 PyObject *__pyx_v_name = 0;
29076 __Pyx_RefNannyDeclarations
29077 __Pyx_RefNannySetupContext(
"__init__ (wrapper)", 0);
29079 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
29080 PyObject* values[1] = {0};
29081 if (unlikely(__pyx_kwds)) {
29082 Py_ssize_t kw_args;
29083 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
29084 switch (pos_args) {
29085 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
29086 CYTHON_FALLTHROUGH;
29088 default:
goto __pyx_L5_argtuple_error;
29090 kw_args = PyDict_Size(__pyx_kwds);
29091 switch (pos_args) {
29093 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
29094 else goto __pyx_L5_argtuple_error;
29096 if (unlikely(kw_args > 0)) {
29097 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"__init__") < 0)) __PYX_ERR(2, 281, __pyx_L3_error)
29099 }
else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
29100 goto __pyx_L5_argtuple_error;
29102 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
29104 __pyx_v_name = values[0];
29106 goto __pyx_L4_argument_unpacking_done;
29107 __pyx_L5_argtuple_error:;
29108 __Pyx_RaiseArgtupleInvalid(
"__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 281, __pyx_L3_error)
29110 __Pyx_AddTraceback(
"View.MemoryView.Enum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29111 __Pyx_RefNannyFinishContext();
29113 __pyx_L4_argument_unpacking_done:;
29114 __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(((
struct __pyx_MemviewEnum_obj *)__pyx_v_self), __pyx_v_name);
29117 __Pyx_RefNannyFinishContext();
29121 static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(
struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name) {
29123 __Pyx_RefNannyDeclarations
29124 __Pyx_RefNannySetupContext(
"__init__", 0);
29133 __Pyx_INCREF(__pyx_v_name);
29134 __Pyx_GIVEREF(__pyx_v_name);
29135 __Pyx_GOTREF(__pyx_v_self->name);
29136 __Pyx_DECREF(__pyx_v_self->name);
29137 __pyx_v_self->name = __pyx_v_name;
29149 __Pyx_RefNannyFinishContext();
29162 static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self);
29163 static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self) {
29164 PyObject *__pyx_r = 0;
29165 __Pyx_RefNannyDeclarations
29166 __Pyx_RefNannySetupContext(
"__repr__ (wrapper)", 0);
29167 __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(((
struct __pyx_MemviewEnum_obj *)__pyx_v_self));
29170 __Pyx_RefNannyFinishContext();
29174 static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(
struct __pyx_MemviewEnum_obj *__pyx_v_self) {
29175 PyObject *__pyx_r = NULL;
29176 __Pyx_RefNannyDeclarations
29177 __Pyx_RefNannySetupContext(
"__repr__", 0);
29186 __Pyx_XDECREF(__pyx_r);
29187 __Pyx_INCREF(__pyx_v_self->name);
29188 __pyx_r = __pyx_v_self->name;
29201 __Pyx_XGIVEREF(__pyx_r);
29202 __Pyx_RefNannyFinishContext();
29213 static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused);
29214 static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
29215 PyObject *__pyx_r = 0;
29216 __Pyx_RefNannyDeclarations
29217 __Pyx_RefNannySetupContext(
"__reduce_cython__ (wrapper)", 0);
29218 __pyx_r = __pyx_pf___pyx_MemviewEnum___reduce_cython__(((
struct __pyx_MemviewEnum_obj *)__pyx_v_self));
29221 __Pyx_RefNannyFinishContext();
29225 static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(
struct __pyx_MemviewEnum_obj *__pyx_v_self) {
29226 PyObject *__pyx_v_state = 0;
29227 PyObject *__pyx_v__dict = 0;
29228 int __pyx_v_use_setstate;
29229 PyObject *__pyx_r = NULL;
29230 __Pyx_RefNannyDeclarations
29231 PyObject *__pyx_t_1 = NULL;
29234 PyObject *__pyx_t_4 = NULL;
29235 PyObject *__pyx_t_5 = NULL;
29236 __Pyx_RefNannySetupContext(
"__reduce_cython__", 0);
29245 __pyx_t_1 = PyTuple_New(1);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error)
29246 __Pyx_GOTREF(__pyx_t_1);
29247 __Pyx_INCREF(__pyx_v_self->name);
29248 __Pyx_GIVEREF(__pyx_v_self->name);
29249 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->name);
29250 __pyx_v_state = ((PyObject*)__pyx_t_1);
29260 __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 6, __pyx_L1_error)
29261 __Pyx_GOTREF(__pyx_t_1);
29262 __pyx_v__dict = __pyx_t_1;
29272 __pyx_t_2 = (__pyx_v__dict != Py_None);
29273 __pyx_t_3 = (__pyx_t_2 != 0);
29283 __pyx_t_1 = PyTuple_New(1);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 8, __pyx_L1_error)
29284 __Pyx_GOTREF(__pyx_t_1);
29285 __Pyx_INCREF(__pyx_v__dict);
29286 __Pyx_GIVEREF(__pyx_v__dict);
29287 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict);
29288 __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 8, __pyx_L1_error)
29289 __Pyx_GOTREF(__pyx_t_4);
29290 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
29291 __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
29301 __pyx_v_use_setstate = 1;
29321 __pyx_t_3 = (__pyx_v_self->name != Py_None);
29322 __pyx_v_use_setstate = __pyx_t_3;
29333 __pyx_t_3 = (__pyx_v_use_setstate != 0);
29343 __Pyx_XDECREF(__pyx_r);
29344 __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Enum);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 13, __pyx_L1_error)
29345 __Pyx_GOTREF(__pyx_t_4);
29346 __pyx_t_1 = PyTuple_New(3);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 13, __pyx_L1_error)
29347 __Pyx_GOTREF(__pyx_t_1);
29348 __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
29349 __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
29350 PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
29351 __Pyx_INCREF(__pyx_int_184977713);
29352 __Pyx_GIVEREF(__pyx_int_184977713);
29353 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713);
29354 __Pyx_INCREF(Py_None);
29355 __Pyx_GIVEREF(Py_None);
29356 PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None);
29357 __pyx_t_5 = PyTuple_New(3);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 13, __pyx_L1_error)
29358 __Pyx_GOTREF(__pyx_t_5);
29359 __Pyx_GIVEREF(__pyx_t_4);
29360 PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
29361 __Pyx_GIVEREF(__pyx_t_1);
29362 PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1);
29363 __Pyx_INCREF(__pyx_v_state);
29364 __Pyx_GIVEREF(__pyx_v_state);
29365 PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state);
29368 __pyx_r = __pyx_t_5;
29389 __Pyx_XDECREF(__pyx_r);
29390 __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Enum);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 15, __pyx_L1_error)
29391 __Pyx_GOTREF(__pyx_t_5);
29392 __pyx_t_1 = PyTuple_New(3);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 15, __pyx_L1_error)
29393 __Pyx_GOTREF(__pyx_t_1);
29394 __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
29395 __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
29396 PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
29397 __Pyx_INCREF(__pyx_int_184977713);
29398 __Pyx_GIVEREF(__pyx_int_184977713);
29399 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713);
29400 __Pyx_INCREF(__pyx_v_state);
29401 __Pyx_GIVEREF(__pyx_v_state);
29402 PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
29403 __pyx_t_4 = PyTuple_New(2);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 15, __pyx_L1_error)
29404 __Pyx_GOTREF(__pyx_t_4);
29405 __Pyx_GIVEREF(__pyx_t_5);
29406 PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
29407 __Pyx_GIVEREF(__pyx_t_1);
29408 PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
29411 __pyx_r = __pyx_t_4;
29424 __Pyx_XDECREF(__pyx_t_1);
29425 __Pyx_XDECREF(__pyx_t_4);
29426 __Pyx_XDECREF(__pyx_t_5);
29427 __Pyx_AddTraceback(
"View.MemoryView.Enum.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29430 __Pyx_XDECREF(__pyx_v_state);
29431 __Pyx_XDECREF(__pyx_v__dict);
29432 __Pyx_XGIVEREF(__pyx_r);
29433 __Pyx_RefNannyFinishContext();
29445 static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state);
29446 static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
29447 PyObject *__pyx_r = 0;
29448 __Pyx_RefNannyDeclarations
29449 __Pyx_RefNannySetupContext(
"__setstate_cython__ (wrapper)", 0);
29450 __pyx_r = __pyx_pf___pyx_MemviewEnum_2__setstate_cython__(((
struct __pyx_MemviewEnum_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
29453 __Pyx_RefNannyFinishContext();
29457 static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(
struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
29458 PyObject *__pyx_r = NULL;
29459 __Pyx_RefNannyDeclarations
29460 PyObject *__pyx_t_1 = NULL;
29461 __Pyx_RefNannySetupContext(
"__setstate_cython__", 0);
29468 if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError,
"Expected %.16s, got %.200s",
"tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(2, 17, __pyx_L1_error)
29469 __pyx_t_1 = __pyx_unpickle_Enum__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state));
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 17, __pyx_L1_error)
29470 __Pyx_GOTREF(__pyx_t_1);
29471 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
29481 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
29484 __Pyx_XDECREF(__pyx_t_1);
29485 __Pyx_AddTraceback(
"View.MemoryView.Enum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29488 __Pyx_XGIVEREF(__pyx_r);
29489 __Pyx_RefNannyFinishContext();
29501 static void *__pyx_align_pointer(
void *__pyx_v_memory,
size_t __pyx_v_alignment) {
29502 Py_intptr_t __pyx_v_aligned_p;
29503 size_t __pyx_v_offset;
29514 __pyx_v_aligned_p = ((Py_intptr_t)__pyx_v_memory);
29523 __pyx_v_offset = (__pyx_v_aligned_p % __pyx_v_alignment);
29532 __pyx_t_1 = ((__pyx_v_offset > 0) != 0);
29542 __pyx_v_aligned_p = (__pyx_v_aligned_p + (__pyx_v_alignment - __pyx_v_offset));
29560 __pyx_r = ((
void *)__pyx_v_aligned_p);
29585 static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
29586 static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
29587 PyObject *__pyx_v_obj = 0;
29589 int __pyx_v_dtype_is_object;
29591 __Pyx_RefNannyDeclarations
29592 __Pyx_RefNannySetupContext(
"__cinit__ (wrapper)", 0);
29594 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,&__pyx_n_s_flags,&__pyx_n_s_dtype_is_object,0};
29595 PyObject* values[3] = {0,0,0};
29596 if (unlikely(__pyx_kwds)) {
29597 Py_ssize_t kw_args;
29598 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
29599 switch (pos_args) {
29600 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
29601 CYTHON_FALLTHROUGH;
29602 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
29603 CYTHON_FALLTHROUGH;
29604 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
29605 CYTHON_FALLTHROUGH;
29607 default:
goto __pyx_L5_argtuple_error;
29609 kw_args = PyDict_Size(__pyx_kwds);
29610 switch (pos_args) {
29612 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--;
29613 else goto __pyx_L5_argtuple_error;
29614 CYTHON_FALLTHROUGH;
29616 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags)) != 0)) kw_args--;
29618 __Pyx_RaiseArgtupleInvalid(
"__cinit__", 0, 2, 3, 1); __PYX_ERR(2, 345, __pyx_L3_error)
29620 CYTHON_FALLTHROUGH;
29623 PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dtype_is_object);
29624 if (value) { values[2] = value; kw_args--; }
29627 if (unlikely(kw_args > 0)) {
29628 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"__cinit__") < 0)) __PYX_ERR(2, 345, __pyx_L3_error)
29631 switch (PyTuple_GET_SIZE(__pyx_args)) {
29632 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
29633 CYTHON_FALLTHROUGH;
29634 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
29635 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
29637 default:
goto __pyx_L5_argtuple_error;
29640 __pyx_v_obj = values[0];
29641 __pyx_v_flags = __Pyx_PyInt_As_int(values[1]);
if (unlikely((__pyx_v_flags == (
int)-1) && PyErr_Occurred())) __PYX_ERR(2, 345, __pyx_L3_error)
29643 __pyx_v_dtype_is_object = __Pyx_PyObject_IsTrue(values[2]);
if (unlikely((__pyx_v_dtype_is_object == (
int)-1) && PyErr_Occurred())) __PYX_ERR(2, 345, __pyx_L3_error)
29645 __pyx_v_dtype_is_object = ((int)0);
29648 goto __pyx_L4_argument_unpacking_done;
29649 __pyx_L5_argtuple_error:;
29650 __Pyx_RaiseArgtupleInvalid(
"__cinit__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 345, __pyx_L3_error)
29652 __Pyx_AddTraceback(
"View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29653 __Pyx_RefNannyFinishContext();
29655 __pyx_L4_argument_unpacking_done:;
29656 __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(((
struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_obj, __pyx_v_flags, __pyx_v_dtype_is_object);
29659 __Pyx_RefNannyFinishContext();
29663 static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(
struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj,
int __pyx_v_flags,
int __pyx_v_dtype_is_object) {
29665 __Pyx_RefNannyDeclarations
29670 __Pyx_RefNannySetupContext(
"__cinit__", 0);
29679 __Pyx_INCREF(__pyx_v_obj);
29680 __Pyx_GIVEREF(__pyx_v_obj);
29681 __Pyx_GOTREF(__pyx_v_self->obj);
29682 __Pyx_DECREF(__pyx_v_self->obj);
29683 __pyx_v_self->obj = __pyx_v_obj;
29692 __pyx_v_self->flags = __pyx_v_flags;
29701 __pyx_t_2 = (((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))) == ((PyObject *)__pyx_memoryview_type));
29702 __pyx_t_3 = (__pyx_t_2 != 0);
29705 __pyx_t_1 = __pyx_t_3;
29706 goto __pyx_L4_bool_binop_done;
29708 __pyx_t_3 = (__pyx_v_obj != Py_None);
29709 __pyx_t_2 = (__pyx_t_3 != 0);
29710 __pyx_t_1 = __pyx_t_2;
29711 __pyx_L4_bool_binop_done:;
29721 __pyx_t_4 = __Pyx_GetBuffer(__pyx_v_obj, (&__pyx_v_self->view), __pyx_v_flags);
if (unlikely(__pyx_t_4 == ((
int)-1))) __PYX_ERR(2, 349, __pyx_L1_error)
29730 __pyx_t_1 = ((((PyObject *)__pyx_v_self->view.obj) == NULL) != 0);
29740 ((Py_buffer *)(&__pyx_v_self->view))->obj = Py_None;
29749 Py_INCREF(Py_None);
29776 __pyx_t_1 = ((__pyx_memoryview_thread_locks_used < 8) != 0);
29786 __pyx_v_self->lock = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]);
29795 __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used + 1);
29813 __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0);
29823 __pyx_v_self->lock = PyThread_allocate_lock();
29832 __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0);
29833 if (unlikely(__pyx_t_1)) {
29842 PyErr_NoMemory(); __PYX_ERR(2, 361, __pyx_L1_error)
29869 __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0);
29879 __pyx_t_2 = (((__pyx_v_self->view.format[0]) ==
'O') != 0);
29882 __pyx_t_1 = __pyx_t_2;
29883 goto __pyx_L11_bool_binop_done;
29885 __pyx_t_2 = (((__pyx_v_self->view.format[1]) ==
'\x00') != 0);
29886 __pyx_t_1 = __pyx_t_2;
29887 __pyx_L11_bool_binop_done:;
29888 __pyx_v_self->dtype_is_object = __pyx_t_1;
29908 __pyx_v_self->dtype_is_object = __pyx_v_dtype_is_object;
29919 __pyx_v_self->acquisition_count_aligned_p = ((__pyx_atomic_int *)__pyx_align_pointer(((
void *)(&(__pyx_v_self->acquisition_count[0]))), (
sizeof(__pyx_atomic_int))));
29928 __pyx_v_self->typeinfo = NULL;
29942 __Pyx_AddTraceback(
"View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29945 __Pyx_RefNannyFinishContext();
29958 static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self);
29959 static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self) {
29960 __Pyx_RefNannyDeclarations
29961 __Pyx_RefNannySetupContext(
"__dealloc__ (wrapper)", 0);
29962 __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(((
struct __pyx_memoryview_obj *)__pyx_v_self));
29965 __Pyx_RefNannyFinishContext();
29968 static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(
struct __pyx_memoryview_obj *__pyx_v_self) {
29970 __Pyx_RefNannyDeclarations
29976 PyThread_type_lock __pyx_t_6;
29977 PyThread_type_lock __pyx_t_7;
29978 __Pyx_RefNannySetupContext(
"__dealloc__", 0);
29987 __pyx_t_1 = (__pyx_v_self->obj != Py_None);
29988 __pyx_t_2 = (__pyx_t_1 != 0);
29998 __Pyx_ReleaseBuffer((&__pyx_v_self->view));
30017 __pyx_t_2 = ((((Py_buffer *)(&__pyx_v_self->view))->obj == Py_None) != 0);
30027 ((Py_buffer *)(&__pyx_v_self->view))->obj = NULL;
30036 Py_DECREF(Py_None);
30055 __pyx_t_2 = ((__pyx_v_self->lock != NULL) != 0);
30065 __pyx_t_3 = __pyx_memoryview_thread_locks_used;
30066 __pyx_t_4 = __pyx_t_3;
30067 for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
30068 __pyx_v_i = __pyx_t_5;
30077 __pyx_t_2 = (((__pyx_memoryview_thread_locks[__pyx_v_i]) == __pyx_v_self->lock) != 0);
30087 __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used - 1);
30096 __pyx_t_2 = ((__pyx_v_i != __pyx_memoryview_thread_locks_used) != 0);
30106 __pyx_t_6 = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]);
30107 __pyx_t_7 = (__pyx_memoryview_thread_locks[__pyx_v_i]);
30116 (__pyx_memoryview_thread_locks[__pyx_v_i]) = __pyx_t_6;
30117 (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]) = __pyx_t_7;
30135 goto __pyx_L6_break;
30155 PyThread_free_lock(__pyx_v_self->lock);
30177 __Pyx_RefNannyFinishContext();
30188 static char *__pyx_memoryview_get_item_pointer(
struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) {
30189 Py_ssize_t __pyx_v_dim;
30190 char *__pyx_v_itemp;
30191 PyObject *__pyx_v_idx = NULL;
30193 __Pyx_RefNannyDeclarations
30194 Py_ssize_t __pyx_t_1;
30195 PyObject *__pyx_t_2 = NULL;
30196 Py_ssize_t __pyx_t_3;
30197 PyObject *(*__pyx_t_4)(PyObject *);
30198 PyObject *__pyx_t_5 = NULL;
30199 Py_ssize_t __pyx_t_6;
30201 __Pyx_RefNannySetupContext(
"get_item_pointer", 0);
30210 __pyx_v_itemp = ((
char *)__pyx_v_self->view.buf);
30220 if (likely(PyList_CheckExact(__pyx_v_index)) || PyTuple_CheckExact(__pyx_v_index)) {
30221 __pyx_t_2 = __pyx_v_index; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
30224 __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_index);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 397, __pyx_L1_error)
30225 __Pyx_GOTREF(__pyx_t_2);
30226 __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext;
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 397, __pyx_L1_error)
30229 if (likely(!__pyx_t_4)) {
30230 if (likely(PyList_CheckExact(__pyx_t_2))) {
30231 if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2))
break;
30232 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 30233 __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++;
if (unlikely(0 < 0)) __PYX_ERR(2, 397, __pyx_L1_error)
30235 __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++;
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 397, __pyx_L1_error)
30236 __Pyx_GOTREF(__pyx_t_5);
30239 if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2))
break;
30240 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 30241 __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++;
if (unlikely(0 < 0)) __PYX_ERR(2, 397, __pyx_L1_error)
30243 __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++;
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 397, __pyx_L1_error)
30244 __Pyx_GOTREF(__pyx_t_5);
30248 __pyx_t_5 = __pyx_t_4(__pyx_t_2);
30249 if (unlikely(!__pyx_t_5)) {
30250 PyObject* exc_type = PyErr_Occurred();
30252 if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
30253 else __PYX_ERR(2, 397, __pyx_L1_error)
30257 __Pyx_GOTREF(__pyx_t_5);
30259 __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5);
30261 __pyx_v_dim = __pyx_t_1;
30262 __pyx_t_1 = (__pyx_t_1 + 1);
30271 __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx);
if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 398, __pyx_L1_error)
30272 __pyx_t_7 = __pyx_pybuffer_index((&__pyx_v_self->view), __pyx_v_itemp, __pyx_t_6, __pyx_v_dim);
if (unlikely(__pyx_t_7 == ((
char *)NULL))) __PYX_ERR(2, 398, __pyx_L1_error)
30273 __pyx_v_itemp = __pyx_t_7;
30283 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30292 __pyx_r = __pyx_v_itemp;
30305 __Pyx_XDECREF(__pyx_t_2);
30306 __Pyx_XDECREF(__pyx_t_5);
30307 __Pyx_AddTraceback(
"View.MemoryView.memoryview.get_item_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename);
30310 __Pyx_XDECREF(__pyx_v_idx);
30311 __Pyx_RefNannyFinishContext();
30324 static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index);
30325 static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) {
30326 PyObject *__pyx_r = 0;
30327 __Pyx_RefNannyDeclarations
30328 __Pyx_RefNannySetupContext(
"__getitem__ (wrapper)", 0);
30329 __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(((
struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index));
30332 __Pyx_RefNannyFinishContext();
30336 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(
struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) {
30337 PyObject *__pyx_v_have_slices = NULL;
30338 PyObject *__pyx_v_indices = NULL;
30339 char *__pyx_v_itemp;
30340 PyObject *__pyx_r = NULL;
30341 __Pyx_RefNannyDeclarations
30344 PyObject *__pyx_t_3 = NULL;
30345 PyObject *__pyx_t_4 = NULL;
30346 PyObject *__pyx_t_5 = NULL;
30348 __Pyx_RefNannySetupContext(
"__getitem__", 0);
30357 __pyx_t_1 = (__pyx_v_index == __pyx_builtin_Ellipsis);
30358 __pyx_t_2 = (__pyx_t_1 != 0);
30368 __Pyx_XDECREF(__pyx_r);
30369 __Pyx_INCREF(((PyObject *)__pyx_v_self));
30370 __pyx_r = ((PyObject *)__pyx_v_self);
30389 __pyx_t_3 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 407, __pyx_L1_error)
30390 __Pyx_GOTREF(__pyx_t_3);
30391 if (likely(__pyx_t_3 != Py_None)) {
30392 PyObject* sequence = __pyx_t_3;
30393 Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
30394 if (unlikely(size != 2)) {
30395 if (size > 2) __Pyx_RaiseTooManyValuesError(2);
30396 else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
30397 __PYX_ERR(2, 407, __pyx_L1_error)
30399 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 30400 __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);
30401 __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1);
30402 __Pyx_INCREF(__pyx_t_4);
30403 __Pyx_INCREF(__pyx_t_5);
30405 __pyx_t_4 = PySequence_ITEM(sequence, 0);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 407, __pyx_L1_error)
30406 __Pyx_GOTREF(__pyx_t_4);
30407 __pyx_t_5 = PySequence_ITEM(sequence, 1);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 407, __pyx_L1_error)
30408 __Pyx_GOTREF(__pyx_t_5);
30410 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
30412 __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 407, __pyx_L1_error)
30414 __pyx_v_have_slices = __pyx_t_4;
30416 __pyx_v_indices = __pyx_t_5;
30426 __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices);
if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 410, __pyx_L1_error)
30436 __Pyx_XDECREF(__pyx_r);
30437 __pyx_t_3 = ((PyObject *)__pyx_memview_slice(__pyx_v_self, __pyx_v_indices));
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 411, __pyx_L1_error)
30438 __Pyx_GOTREF(__pyx_t_3);
30439 __pyx_r = __pyx_t_3;
30460 __pyx_t_6 = ((
struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_indices);
if (unlikely(__pyx_t_6 == ((
char *)NULL))) __PYX_ERR(2, 413, __pyx_L1_error)
30461 __pyx_v_itemp = __pyx_t_6;
30470 __Pyx_XDECREF(__pyx_r);
30471 __pyx_t_3 = ((
struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->convert_item_to_object(__pyx_v_self, __pyx_v_itemp);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 414, __pyx_L1_error)
30472 __Pyx_GOTREF(__pyx_t_3);
30473 __pyx_r = __pyx_t_3;
30488 __Pyx_XDECREF(__pyx_t_3);
30489 __Pyx_XDECREF(__pyx_t_4);
30490 __Pyx_XDECREF(__pyx_t_5);
30491 __Pyx_AddTraceback(
"View.MemoryView.memoryview.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30494 __Pyx_XDECREF(__pyx_v_have_slices);
30495 __Pyx_XDECREF(__pyx_v_indices);
30496 __Pyx_XGIVEREF(__pyx_r);
30497 __Pyx_RefNannyFinishContext();
30510 static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value);
30511 static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) {
30513 __Pyx_RefNannyDeclarations
30514 __Pyx_RefNannySetupContext(
"__setitem__ (wrapper)", 0);
30515 __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(((
struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index), ((PyObject *)__pyx_v_value));
30518 __Pyx_RefNannyFinishContext();
30522 static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(
struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) {
30523 PyObject *__pyx_v_have_slices = NULL;
30524 PyObject *__pyx_v_obj = NULL;
30526 __Pyx_RefNannyDeclarations
30528 PyObject *__pyx_t_2 = NULL;
30529 PyObject *__pyx_t_3 = NULL;
30530 PyObject *__pyx_t_4 = NULL;
30531 __Pyx_RefNannySetupContext(
"__setitem__", 0);
30532 __Pyx_INCREF(__pyx_v_index);
30541 __pyx_t_1 = (__pyx_v_self->view.readonly != 0);
30542 if (unlikely(__pyx_t_1)) {
30551 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__21, NULL);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 418, __pyx_L1_error)
30552 __Pyx_GOTREF(__pyx_t_2);
30553 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
30554 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30555 __PYX_ERR(2, 418, __pyx_L1_error)
30573 __pyx_t_2 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 420, __pyx_L1_error)
30574 __Pyx_GOTREF(__pyx_t_2);
30575 if (likely(__pyx_t_2 != Py_None)) {
30576 PyObject* sequence = __pyx_t_2;
30577 Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
30578 if (unlikely(size != 2)) {
30579 if (size > 2) __Pyx_RaiseTooManyValuesError(2);
30580 else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
30581 __PYX_ERR(2, 420, __pyx_L1_error)
30583 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 30584 __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
30585 __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
30586 __Pyx_INCREF(__pyx_t_3);
30587 __Pyx_INCREF(__pyx_t_4);
30589 __pyx_t_3 = PySequence_ITEM(sequence, 0);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 420, __pyx_L1_error)
30590 __Pyx_GOTREF(__pyx_t_3);
30591 __pyx_t_4 = PySequence_ITEM(sequence, 1);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 420, __pyx_L1_error)
30592 __Pyx_GOTREF(__pyx_t_4);
30594 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30596 __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 420, __pyx_L1_error)
30598 __pyx_v_have_slices = __pyx_t_3;
30600 __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_4);
30610 __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices);
if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 422, __pyx_L1_error)
30620 __pyx_t_2 = ((
struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->is_slice(__pyx_v_self, __pyx_v_value);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 423, __pyx_L1_error)
30621 __Pyx_GOTREF(__pyx_t_2);
30622 __pyx_v_obj = __pyx_t_2;
30632 __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_obj);
if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 424, __pyx_L1_error)
30642 __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 425, __pyx_L1_error)
30643 __Pyx_GOTREF(__pyx_t_2);
30644 __pyx_t_4 = ((
struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assignment(__pyx_v_self, __pyx_t_2, __pyx_v_obj);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 425, __pyx_L1_error)
30645 __Pyx_GOTREF(__pyx_t_4);
30646 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30647 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
30667 __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 427, __pyx_L1_error)
30668 __Pyx_GOTREF(__pyx_t_4);
30669 if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_memoryview_type))))) __PYX_ERR(2, 427, __pyx_L1_error)
30670 __pyx_t_2 = ((
struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assign_scalar(__pyx_v_self, ((
struct __pyx_memoryview_obj *)__pyx_t_4), __pyx_v_value);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 427, __pyx_L1_error)
30671 __Pyx_GOTREF(__pyx_t_2);
30672 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
30673 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30695 __pyx_t_2 = ((
struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_indexed(__pyx_v_self, __pyx_v_index, __pyx_v_value);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 429, __pyx_L1_error)
30696 __Pyx_GOTREF(__pyx_t_2);
30697 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
30713 __Pyx_XDECREF(__pyx_t_2);
30714 __Pyx_XDECREF(__pyx_t_3);
30715 __Pyx_XDECREF(__pyx_t_4);
30716 __Pyx_AddTraceback(
"View.MemoryView.memoryview.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
30719 __Pyx_XDECREF(__pyx_v_have_slices);
30720 __Pyx_XDECREF(__pyx_v_obj);
30721 __Pyx_XDECREF(__pyx_v_index);
30722 __Pyx_RefNannyFinishContext();
30734 static PyObject *__pyx_memoryview_is_slice(
struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj) {
30735 PyObject *__pyx_r = NULL;
30736 __Pyx_RefNannyDeclarations
30739 PyObject *__pyx_t_3 = NULL;
30740 PyObject *__pyx_t_4 = NULL;
30741 PyObject *__pyx_t_5 = NULL;
30742 PyObject *__pyx_t_6 = NULL;
30743 PyObject *__pyx_t_7 = NULL;
30744 PyObject *__pyx_t_8 = NULL;
30746 __Pyx_RefNannySetupContext(
"is_slice", 0);
30747 __Pyx_INCREF(__pyx_v_obj);
30756 __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_memoryview_type);
30757 __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
30768 __Pyx_PyThreadState_declare
30769 __Pyx_PyThreadState_assign
30770 __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
30771 __Pyx_XGOTREF(__pyx_t_3);
30772 __Pyx_XGOTREF(__pyx_t_4);
30773 __Pyx_XGOTREF(__pyx_t_5);
30783 __pyx_t_6 = __Pyx_PyInt_From_int(((__pyx_v_self->flags & (~PyBUF_WRITABLE)) | PyBUF_ANY_CONTIGUOUS));
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 434, __pyx_L4_error)
30784 __Pyx_GOTREF(__pyx_t_6);
30793 __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object);
if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 435, __pyx_L4_error)
30794 __Pyx_GOTREF(__pyx_t_7);
30803 __pyx_t_8 = PyTuple_New(3);
if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 434, __pyx_L4_error)
30804 __Pyx_GOTREF(__pyx_t_8);
30805 __Pyx_INCREF(__pyx_v_obj);
30806 __Pyx_GIVEREF(__pyx_v_obj);
30807 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_obj);
30808 __Pyx_GIVEREF(__pyx_t_6);
30809 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6);
30810 __Pyx_GIVEREF(__pyx_t_7);
30811 PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7);
30814 __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_8, NULL);
if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 434, __pyx_L4_error)
30815 __Pyx_GOTREF(__pyx_t_7);
30816 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
30817 __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_7);
30828 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
30829 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
30830 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
30831 goto __pyx_L9_try_end;
30833 __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
30834 __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
30835 __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
30844 __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError);
30846 __Pyx_AddTraceback(
"View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
30847 if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(2, 436, __pyx_L6_except_error)
30848 __Pyx_GOTREF(__pyx_t_7);
30849 __Pyx_GOTREF(__pyx_t_8);
30850 __Pyx_GOTREF(__pyx_t_6);
30859 __Pyx_XDECREF(__pyx_r);
30860 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
30861 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
30862 __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
30863 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
30864 goto __pyx_L7_except_return;
30866 goto __pyx_L6_except_error;
30867 __pyx_L6_except_error:;
30876 __Pyx_XGIVEREF(__pyx_t_3);
30877 __Pyx_XGIVEREF(__pyx_t_4);
30878 __Pyx_XGIVEREF(__pyx_t_5);
30879 __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
30880 goto __pyx_L1_error;
30881 __pyx_L7_except_return:;
30882 __Pyx_XGIVEREF(__pyx_t_3);
30883 __Pyx_XGIVEREF(__pyx_t_4);
30884 __Pyx_XGIVEREF(__pyx_t_5);
30885 __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
30906 __Pyx_XDECREF(__pyx_r);
30907 __Pyx_INCREF(__pyx_v_obj);
30908 __pyx_r = __pyx_v_obj;
30921 __Pyx_XDECREF(__pyx_t_6);
30922 __Pyx_XDECREF(__pyx_t_7);
30923 __Pyx_XDECREF(__pyx_t_8);
30924 __Pyx_AddTraceback(
"View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
30927 __Pyx_XDECREF(__pyx_v_obj);
30928 __Pyx_XGIVEREF(__pyx_r);
30929 __Pyx_RefNannyFinishContext();
30941 static PyObject *__pyx_memoryview_setitem_slice_assignment(
struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src) {
30942 __Pyx_memviewslice __pyx_v_dst_slice;
30943 __Pyx_memviewslice __pyx_v_src_slice;
30944 PyObject *__pyx_r = NULL;
30945 __Pyx_RefNannyDeclarations
30946 __Pyx_memviewslice *__pyx_t_1;
30947 __Pyx_memviewslice *__pyx_t_2;
30948 PyObject *__pyx_t_3 = NULL;
30952 __Pyx_RefNannySetupContext(
"setitem_slice_assignment", 0);
30961 if (!(likely(((__pyx_v_src) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_src, __pyx_memoryview_type))))) __PYX_ERR(2, 445, __pyx_L1_error)
30962 __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(((
struct __pyx_memoryview_obj *)__pyx_v_src), (&__pyx_v_src_slice));
if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(2, 445, __pyx_L1_error)
30971 if (!(likely(((__pyx_v_dst) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_dst, __pyx_memoryview_type))))) __PYX_ERR(2, 446, __pyx_L1_error)
30972 __pyx_t_2 = __pyx_memoryview_get_slice_from_memoryview(((
struct __pyx_memoryview_obj *)__pyx_v_dst), (&__pyx_v_dst_slice));
if (unlikely(__pyx_t_2 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(2, 446, __pyx_L1_error)
30981 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_src, __pyx_n_s_ndim);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 447, __pyx_L1_error)
30982 __Pyx_GOTREF(__pyx_t_3);
30983 __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_3);
if (unlikely((__pyx_t_4 == (
int)-1) && PyErr_Occurred())) __PYX_ERR(2, 447, __pyx_L1_error)
30984 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
30985 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_dst, __pyx_n_s_ndim);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 447, __pyx_L1_error)
30986 __Pyx_GOTREF(__pyx_t_3);
30987 __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3);
if (unlikely((__pyx_t_5 == (
int)-1) && PyErr_Occurred())) __PYX_ERR(2, 447, __pyx_L1_error)
30988 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
30997 __pyx_t_6 = __pyx_memoryview_copy_contents((__pyx_t_1[0]), (__pyx_t_2[0]), __pyx_t_4, __pyx_t_5, __pyx_v_self->dtype_is_object);
if (unlikely(__pyx_t_6 == ((
int)-1))) __PYX_ERR(2, 445, __pyx_L1_error)
31008 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
31011 __Pyx_XDECREF(__pyx_t_3);
31012 __Pyx_AddTraceback(
"View.MemoryView.memoryview.setitem_slice_assignment", __pyx_clineno, __pyx_lineno, __pyx_filename);
31015 __Pyx_XGIVEREF(__pyx_r);
31016 __Pyx_RefNannyFinishContext();
31028 static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(
struct __pyx_memoryview_obj *__pyx_v_self,
struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value) {
31029 int __pyx_v_array[0x80];
31031 void *__pyx_v_item;
31032 __Pyx_memviewslice *__pyx_v_dst_slice;
31033 __Pyx_memviewslice __pyx_v_tmp_slice;
31034 PyObject *__pyx_r = NULL;
31035 __Pyx_RefNannyDeclarations
31036 __Pyx_memviewslice *__pyx_t_1;
31038 PyObject *__pyx_t_3 = NULL;
31041 char const *__pyx_t_6;
31042 PyObject *__pyx_t_7 = NULL;
31043 PyObject *__pyx_t_8 = NULL;
31044 PyObject *__pyx_t_9 = NULL;
31045 PyObject *__pyx_t_10 = NULL;
31046 PyObject *__pyx_t_11 = NULL;
31047 PyObject *__pyx_t_12 = NULL;
31048 __Pyx_RefNannySetupContext(
"setitem_slice_assign_scalar", 0);
31057 __pyx_v_tmp = NULL;
31066 __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_dst, (&__pyx_v_tmp_slice));
if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(2, 456, __pyx_L1_error)
31067 __pyx_v_dst_slice = __pyx_t_1;
31076 __pyx_t_2 = ((((size_t)__pyx_v_self->view.itemsize) > (
sizeof(__pyx_v_array))) != 0);
31086 __pyx_v_tmp = PyMem_Malloc(__pyx_v_self->view.itemsize);
31095 __pyx_t_2 = ((__pyx_v_tmp == NULL) != 0);
31096 if (unlikely(__pyx_t_2)) {
31105 PyErr_NoMemory(); __PYX_ERR(2, 461, __pyx_L1_error)
31123 __pyx_v_item = __pyx_v_tmp;
31143 __pyx_v_item = ((
void *)__pyx_v_array);
31163 __pyx_t_2 = (__pyx_v_self->dtype_is_object != 0);
31173 (((PyObject **)__pyx_v_item)[0]) = ((PyObject *)__pyx_v_value);
31193 __pyx_t_3 = ((
struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, ((
char *)__pyx_v_item), __pyx_v_value);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 470, __pyx_L6_error)
31194 __Pyx_GOTREF(__pyx_t_3);
31195 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
31206 __pyx_t_2 = ((__pyx_v_self->view.suboffsets != NULL) != 0);
31216 __pyx_t_3 = assert_direct_dimensions(__pyx_v_self->view.suboffsets, __pyx_v_self->view.ndim);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 475, __pyx_L6_error)
31217 __Pyx_GOTREF(__pyx_t_3);
31218 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
31236 __pyx_memoryview_slice_assign_scalar(__pyx_v_dst_slice, __pyx_v_dst->view.ndim, __pyx_v_self->view.itemsize, __pyx_v_item, __pyx_v_self->dtype_is_object);
31248 PyMem_Free(__pyx_v_tmp);
31253 __Pyx_PyThreadState_declare
31254 __Pyx_PyThreadState_assign
31255 __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0;
31256 __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
31257 if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
31258 if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
31259 __Pyx_XGOTREF(__pyx_t_7);
31260 __Pyx_XGOTREF(__pyx_t_8);
31261 __Pyx_XGOTREF(__pyx_t_9);
31262 __Pyx_XGOTREF(__pyx_t_10);
31263 __Pyx_XGOTREF(__pyx_t_11);
31264 __Pyx_XGOTREF(__pyx_t_12);
31265 __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename;
31267 PyMem_Free(__pyx_v_tmp);
31269 if (PY_MAJOR_VERSION >= 3) {
31270 __Pyx_XGIVEREF(__pyx_t_10);
31271 __Pyx_XGIVEREF(__pyx_t_11);
31272 __Pyx_XGIVEREF(__pyx_t_12);
31273 __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
31275 __Pyx_XGIVEREF(__pyx_t_7);
31276 __Pyx_XGIVEREF(__pyx_t_8);
31277 __Pyx_XGIVEREF(__pyx_t_9);
31278 __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9);
31279 __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0;
31280 __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6;
31281 goto __pyx_L1_error;
31295 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
31298 __Pyx_XDECREF(__pyx_t_3);
31299 __Pyx_AddTraceback(
"View.MemoryView.memoryview.setitem_slice_assign_scalar", __pyx_clineno, __pyx_lineno, __pyx_filename);
31302 __Pyx_XGIVEREF(__pyx_r);
31303 __Pyx_RefNannyFinishContext();
31315 static PyObject *__pyx_memoryview_setitem_indexed(
struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) {
31316 char *__pyx_v_itemp;
31317 PyObject *__pyx_r = NULL;
31318 __Pyx_RefNannyDeclarations
31320 PyObject *__pyx_t_2 = NULL;
31321 __Pyx_RefNannySetupContext(
"setitem_indexed", 0);
31330 __pyx_t_1 = ((
struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_index);
if (unlikely(__pyx_t_1 == ((
char *)NULL))) __PYX_ERR(2, 482, __pyx_L1_error)
31331 __pyx_v_itemp = __pyx_t_1;
31340 __pyx_t_2 = ((
struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, __pyx_v_itemp, __pyx_v_value);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 483, __pyx_L1_error)
31341 __Pyx_GOTREF(__pyx_t_2);
31342 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
31353 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
31356 __Pyx_XDECREF(__pyx_t_2);
31357 __Pyx_AddTraceback(
"View.MemoryView.memoryview.setitem_indexed", __pyx_clineno, __pyx_lineno, __pyx_filename);
31360 __Pyx_XGIVEREF(__pyx_r);
31361 __Pyx_RefNannyFinishContext();
31373 static PyObject *__pyx_memoryview_convert_item_to_object(
struct __pyx_memoryview_obj *__pyx_v_self,
char *__pyx_v_itemp) {
31374 PyObject *__pyx_v_struct = NULL;
31375 PyObject *__pyx_v_bytesitem = 0;
31376 PyObject *__pyx_v_result = NULL;
31377 PyObject *__pyx_r = NULL;
31378 __Pyx_RefNannyDeclarations
31379 PyObject *__pyx_t_1 = NULL;
31380 PyObject *__pyx_t_2 = NULL;
31381 PyObject *__pyx_t_3 = NULL;
31382 PyObject *__pyx_t_4 = NULL;
31383 PyObject *__pyx_t_5 = NULL;
31384 PyObject *__pyx_t_6 = NULL;
31385 PyObject *__pyx_t_7 = NULL;
31387 PyObject *__pyx_t_9 = NULL;
31390 __Pyx_RefNannySetupContext(
"convert_item_to_object", 0);
31399 __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 488, __pyx_L1_error)
31400 __Pyx_GOTREF(__pyx_t_1);
31401 __pyx_v_struct = __pyx_t_1;
31411 __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_itemp + 0, __pyx_v_self->view.itemsize - 0);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 491, __pyx_L1_error)
31412 __Pyx_GOTREF(__pyx_t_1);
31413 __pyx_v_bytesitem = ((PyObject*)__pyx_t_1);
31424 __Pyx_PyThreadState_declare
31425 __Pyx_PyThreadState_assign
31426 __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
31427 __Pyx_XGOTREF(__pyx_t_2);
31428 __Pyx_XGOTREF(__pyx_t_3);
31429 __Pyx_XGOTREF(__pyx_t_4);
31439 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_unpack);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 493, __pyx_L3_error)
31440 __Pyx_GOTREF(__pyx_t_5);
31441 __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format);
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 493, __pyx_L3_error)
31442 __Pyx_GOTREF(__pyx_t_6);
31445 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
31446 __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
31447 if (likely(__pyx_t_7)) {
31448 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_5);
31449 __Pyx_INCREF(__pyx_t_7);
31450 __Pyx_INCREF(
function);
31451 __Pyx_DECREF_SET(__pyx_t_5,
function);
31455 #if CYTHON_FAST_PYCALL 31456 if (PyFunction_Check(__pyx_t_5)) {
31457 PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem};
31458 __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L3_error)
31459 __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
31460 __Pyx_GOTREF(__pyx_t_1);
31461 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31464 #if CYTHON_FAST_PYCCALL 31465 if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
31466 PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem};
31467 __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L3_error)
31468 __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
31469 __Pyx_GOTREF(__pyx_t_1);
31470 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31474 __pyx_t_9 = PyTuple_New(2+__pyx_t_8);
if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 493, __pyx_L3_error)
31475 __Pyx_GOTREF(__pyx_t_9);
31477 __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
31479 __Pyx_GIVEREF(__pyx_t_6);
31480 PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_6);
31481 __Pyx_INCREF(__pyx_v_bytesitem);
31482 __Pyx_GIVEREF(__pyx_v_bytesitem);
31483 PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_bytesitem);
31485 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L3_error)
31486 __Pyx_GOTREF(__pyx_t_1);
31487 __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
31489 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
31490 __pyx_v_result = __pyx_t_1;
31510 __pyx_t_10 = strlen(__pyx_v_self->view.format);
31511 __pyx_t_11 = ((__pyx_t_10 == 1) != 0);
31521 __Pyx_XDECREF(__pyx_r);
31522 __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_result, 0,
long, 1, __Pyx_PyInt_From_long, 0, 0, 0);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 498, __pyx_L5_except_error)
31523 __Pyx_GOTREF(__pyx_t_1);
31524 __pyx_r = __pyx_t_1;
31526 goto __pyx_L6_except_return;
31544 __Pyx_XDECREF(__pyx_r);
31545 __Pyx_INCREF(__pyx_v_result);
31546 __pyx_r = __pyx_v_result;
31547 goto __pyx_L6_except_return;
31550 __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
31551 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
31552 __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
31553 __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
31554 __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
31563 __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_5, &__pyx_t_9);
31564 __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_error);
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 494, __pyx_L5_except_error)
31565 __Pyx_GOTREF(__pyx_t_6);
31566 __pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_6);
31567 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31568 __Pyx_ErrRestore(__pyx_t_1, __pyx_t_5, __pyx_t_9);
31569 __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_9 = 0;
31571 __Pyx_AddTraceback(
"View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
31572 if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(2, 494, __pyx_L5_except_error)
31573 __Pyx_GOTREF(__pyx_t_9);
31574 __Pyx_GOTREF(__pyx_t_5);
31575 __Pyx_GOTREF(__pyx_t_1);
31584 __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__22, NULL);
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 495, __pyx_L5_except_error)
31585 __Pyx_GOTREF(__pyx_t_6);
31586 __Pyx_Raise(__pyx_t_6, 0, 0, 0);
31587 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31588 __PYX_ERR(2, 495, __pyx_L5_except_error)
31590 goto __pyx_L5_except_error;
31591 __pyx_L5_except_error:;
31600 __Pyx_XGIVEREF(__pyx_t_2);
31601 __Pyx_XGIVEREF(__pyx_t_3);
31602 __Pyx_XGIVEREF(__pyx_t_4);
31603 __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
31604 goto __pyx_L1_error;
31605 __pyx_L6_except_return:;
31606 __Pyx_XGIVEREF(__pyx_t_2);
31607 __Pyx_XGIVEREF(__pyx_t_3);
31608 __Pyx_XGIVEREF(__pyx_t_4);
31609 __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
31623 __Pyx_XDECREF(__pyx_t_1);
31624 __Pyx_XDECREF(__pyx_t_5);
31625 __Pyx_XDECREF(__pyx_t_6);
31626 __Pyx_XDECREF(__pyx_t_7);
31627 __Pyx_XDECREF(__pyx_t_9);
31628 __Pyx_AddTraceback(
"View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
31631 __Pyx_XDECREF(__pyx_v_struct);
31632 __Pyx_XDECREF(__pyx_v_bytesitem);
31633 __Pyx_XDECREF(__pyx_v_result);
31634 __Pyx_XGIVEREF(__pyx_r);
31635 __Pyx_RefNannyFinishContext();
31647 static PyObject *__pyx_memoryview_assign_item_from_object(
struct __pyx_memoryview_obj *__pyx_v_self,
char *__pyx_v_itemp, PyObject *__pyx_v_value) {
31648 PyObject *__pyx_v_struct = NULL;
31650 PyObject *__pyx_v_bytesvalue = 0;
31651 Py_ssize_t __pyx_v_i;
31652 PyObject *__pyx_r = NULL;
31653 __Pyx_RefNannyDeclarations
31654 PyObject *__pyx_t_1 = NULL;
31657 PyObject *__pyx_t_4 = NULL;
31658 PyObject *__pyx_t_5 = NULL;
31659 PyObject *__pyx_t_6 = NULL;
31661 PyObject *__pyx_t_8 = NULL;
31662 Py_ssize_t __pyx_t_9;
31663 PyObject *__pyx_t_10 = NULL;
31668 __Pyx_RefNannySetupContext(
"assign_item_from_object", 0);
31677 __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 504, __pyx_L1_error)
31678 __Pyx_GOTREF(__pyx_t_1);
31679 __pyx_v_struct = __pyx_t_1;
31689 __pyx_t_2 = PyTuple_Check(__pyx_v_value);
31690 __pyx_t_3 = (__pyx_t_2 != 0);
31700 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 510, __pyx_L1_error)
31701 __Pyx_GOTREF(__pyx_t_1);
31702 __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 510, __pyx_L1_error)
31703 __Pyx_GOTREF(__pyx_t_4);
31704 __pyx_t_5 = PyTuple_New(1);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 510, __pyx_L1_error)
31705 __Pyx_GOTREF(__pyx_t_5);
31706 __Pyx_GIVEREF(__pyx_t_4);
31707 PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
31709 __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_value);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 510, __pyx_L1_error)
31710 __Pyx_GOTREF(__pyx_t_4);
31711 __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_t_4);
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 510, __pyx_L1_error)
31712 __Pyx_GOTREF(__pyx_t_6);
31713 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
31714 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
31715 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 510, __pyx_L1_error)
31716 __Pyx_GOTREF(__pyx_t_4);
31717 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
31718 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31719 if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError,
"Expected %.16s, got %.200s",
"bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(2, 510, __pyx_L1_error)
31720 __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4);
31741 __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack);
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 512, __pyx_L1_error)
31742 __Pyx_GOTREF(__pyx_t_6);
31743 __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 512, __pyx_L1_error)
31744 __Pyx_GOTREF(__pyx_t_1);
31747 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
31748 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
31749 if (likely(__pyx_t_5)) {
31750 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_6);
31751 __Pyx_INCREF(__pyx_t_5);
31752 __Pyx_INCREF(
function);
31753 __Pyx_DECREF_SET(__pyx_t_6,
function);
31757 #if CYTHON_FAST_PYCALL 31758 if (PyFunction_Check(__pyx_t_6)) {
31759 PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value};
31760 __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 512, __pyx_L1_error)
31761 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
31762 __Pyx_GOTREF(__pyx_t_4);
31763 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
31766 #if CYTHON_FAST_PYCCALL 31767 if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
31768 PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value};
31769 __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 512, __pyx_L1_error)
31770 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
31771 __Pyx_GOTREF(__pyx_t_4);
31772 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
31776 __pyx_t_8 = PyTuple_New(2+__pyx_t_7);
if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 512, __pyx_L1_error)
31777 __Pyx_GOTREF(__pyx_t_8);
31779 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL;
31781 __Pyx_GIVEREF(__pyx_t_1);
31782 PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_1);
31783 __Pyx_INCREF(__pyx_v_value);
31784 __Pyx_GIVEREF(__pyx_v_value);
31785 PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_value);
31787 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 512, __pyx_L1_error)
31788 __Pyx_GOTREF(__pyx_t_4);
31789 __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
31791 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
31792 if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError,
"Expected %.16s, got %.200s",
"bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(2, 512, __pyx_L1_error)
31793 __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4);
31806 if (unlikely(__pyx_v_bytesvalue == Py_None)) {
31807 PyErr_SetString(PyExc_TypeError,
"'NoneType' is not iterable");
31808 __PYX_ERR(2, 514, __pyx_L1_error)
31810 __Pyx_INCREF(__pyx_v_bytesvalue);
31811 __pyx_t_10 = __pyx_v_bytesvalue;
31812 __pyx_t_12 = PyBytes_AS_STRING(__pyx_t_10);
31813 __pyx_t_13 = (__pyx_t_12 + PyBytes_GET_SIZE(__pyx_t_10));
31814 for (__pyx_t_14 = __pyx_t_12; __pyx_t_14 < __pyx_t_13; __pyx_t_14++) {
31815 __pyx_t_11 = __pyx_t_14;
31816 __pyx_v_c = (__pyx_t_11[0]);
31825 __pyx_v_i = __pyx_t_9;
31834 __pyx_t_9 = (__pyx_t_9 + 1);
31843 (__pyx_v_itemp[__pyx_v_i]) = __pyx_v_c;
31845 __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
31856 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
31859 __Pyx_XDECREF(__pyx_t_1);
31860 __Pyx_XDECREF(__pyx_t_4);
31861 __Pyx_XDECREF(__pyx_t_5);
31862 __Pyx_XDECREF(__pyx_t_6);
31863 __Pyx_XDECREF(__pyx_t_8);
31864 __Pyx_XDECREF(__pyx_t_10);
31865 __Pyx_AddTraceback(
"View.MemoryView.memoryview.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
31868 __Pyx_XDECREF(__pyx_v_struct);
31869 __Pyx_XDECREF(__pyx_v_bytesvalue);
31870 __Pyx_XGIVEREF(__pyx_r);
31871 __Pyx_RefNannyFinishContext();
31884 static CYTHON_UNUSED
int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info,
int __pyx_v_flags);
31885 static CYTHON_UNUSED
int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info,
int __pyx_v_flags) {
31887 __Pyx_RefNannyDeclarations
31888 __Pyx_RefNannySetupContext(
"__getbuffer__ (wrapper)", 0);
31889 __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(((
struct __pyx_memoryview_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((
int)__pyx_v_flags));
31892 __Pyx_RefNannyFinishContext();
31896 static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(
struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info,
int __pyx_v_flags) {
31898 __Pyx_RefNannyDeclarations
31901 PyObject *__pyx_t_3 = NULL;
31902 Py_ssize_t *__pyx_t_4;
31906 Py_ssize_t __pyx_t_8;
31907 if (__pyx_v_info == NULL) {
31908 PyErr_SetString(PyExc_BufferError,
"PyObject_GetBuffer: view==NULL argument is obsolete");
31911 __Pyx_RefNannySetupContext(
"__getbuffer__", 0);
31912 __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None);
31913 __Pyx_GIVEREF(__pyx_v_info->obj);
31922 __pyx_t_2 = ((__pyx_v_flags & PyBUF_WRITABLE) != 0);
31925 __pyx_t_1 = __pyx_t_2;
31926 goto __pyx_L4_bool_binop_done;
31928 __pyx_t_2 = (__pyx_v_self->view.readonly != 0);
31929 __pyx_t_1 = __pyx_t_2;
31930 __pyx_L4_bool_binop_done:;
31931 if (unlikely(__pyx_t_1)) {
31940 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__23, NULL);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 520, __pyx_L1_error)
31941 __Pyx_GOTREF(__pyx_t_3);
31942 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
31943 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
31944 __PYX_ERR(2, 520, __pyx_L1_error)
31962 __pyx_t_1 = ((__pyx_v_flags & PyBUF_ND) != 0);
31972 __pyx_t_4 = __pyx_v_self->view.shape;
31973 __pyx_v_info->shape = __pyx_t_4;
31993 __pyx_v_info->shape = NULL;
32004 __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0);
32014 __pyx_t_4 = __pyx_v_self->view.strides;
32015 __pyx_v_info->strides = __pyx_t_4;
32035 __pyx_v_info->strides = NULL;
32046 __pyx_t_1 = ((__pyx_v_flags & PyBUF_INDIRECT) != 0);
32056 __pyx_t_4 = __pyx_v_self->view.suboffsets;
32057 __pyx_v_info->suboffsets = __pyx_t_4;
32077 __pyx_v_info->suboffsets = NULL;
32088 __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0);
32098 __pyx_t_5 = __pyx_v_self->view.format;
32099 __pyx_v_info->format = __pyx_t_5;
32119 __pyx_v_info->format = NULL;
32130 __pyx_t_6 = __pyx_v_self->view.buf;
32131 __pyx_v_info->buf = __pyx_t_6;
32140 __pyx_t_7 = __pyx_v_self->view.ndim;
32141 __pyx_v_info->ndim = __pyx_t_7;
32150 __pyx_t_8 = __pyx_v_self->view.itemsize;
32151 __pyx_v_info->itemsize = __pyx_t_8;
32160 __pyx_t_8 = __pyx_v_self->view.len;
32161 __pyx_v_info->len = __pyx_t_8;
32170 __pyx_t_1 = __pyx_v_self->view.readonly;
32171 __pyx_v_info->readonly = __pyx_t_1;
32180 __Pyx_INCREF(((PyObject *)__pyx_v_self));
32181 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
32182 __Pyx_GOTREF(__pyx_v_info->obj);
32183 __Pyx_DECREF(__pyx_v_info->obj);
32184 __pyx_v_info->obj = ((PyObject *)__pyx_v_self);
32198 __Pyx_XDECREF(__pyx_t_3);
32199 __Pyx_AddTraceback(
"View.MemoryView.memoryview.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
32201 if (__pyx_v_info->obj != NULL) {
32202 __Pyx_GOTREF(__pyx_v_info->obj);
32203 __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
32207 if (__pyx_v_info->obj == Py_None) {
32208 __Pyx_GOTREF(__pyx_v_info->obj);
32209 __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
32212 __Pyx_RefNannyFinishContext();
32225 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self);
32226 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self) {
32227 PyObject *__pyx_r = 0;
32228 __Pyx_RefNannyDeclarations
32229 __Pyx_RefNannySetupContext(
"__get__ (wrapper)", 0);
32230 __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(((
struct __pyx_memoryview_obj *)__pyx_v_self));
32233 __Pyx_RefNannyFinishContext();
32237 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(
struct __pyx_memoryview_obj *__pyx_v_self) {
32238 struct __pyx_memoryviewslice_obj *__pyx_v_result = 0;
32239 PyObject *__pyx_r = NULL;
32240 __Pyx_RefNannyDeclarations
32241 PyObject *__pyx_t_1 = NULL;
32243 __Pyx_RefNannySetupContext(
"__get__", 0);
32252 __pyx_t_1 = __pyx_memoryview_copy_object(__pyx_v_self);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 554, __pyx_L1_error)
32253 __Pyx_GOTREF(__pyx_t_1);
32254 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_memoryviewslice_type))))) __PYX_ERR(2, 554, __pyx_L1_error)
32255 __pyx_v_result = ((
struct __pyx_memoryviewslice_obj *)__pyx_t_1);
32265 __pyx_t_2 = __pyx_memslice_transpose((&__pyx_v_result->from_slice));
if (unlikely(__pyx_t_2 == ((
int)0))) __PYX_ERR(2, 555, __pyx_L1_error)
32274 __Pyx_XDECREF(__pyx_r);
32275 __Pyx_INCREF(((PyObject *)__pyx_v_result));
32276 __pyx_r = ((PyObject *)__pyx_v_result);
32289 __Pyx_XDECREF(__pyx_t_1);
32290 __Pyx_AddTraceback(
"View.MemoryView.memoryview.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
32293 __Pyx_XDECREF((PyObject *)__pyx_v_result);
32294 __Pyx_XGIVEREF(__pyx_r);
32295 __Pyx_RefNannyFinishContext();
32308 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self);
32309 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self) {
32310 PyObject *__pyx_r = 0;
32311 __Pyx_RefNannyDeclarations
32312 __Pyx_RefNannySetupContext(
"__get__ (wrapper)", 0);
32313 __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(((
struct __pyx_memoryview_obj *)__pyx_v_self));
32316 __Pyx_RefNannyFinishContext();
32320 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(
struct __pyx_memoryview_obj *__pyx_v_self) {
32321 PyObject *__pyx_r = NULL;
32322 __Pyx_RefNannyDeclarations
32323 __Pyx_RefNannySetupContext(
"__get__", 0);
32332 __Pyx_XDECREF(__pyx_r);
32333 __Pyx_INCREF(__pyx_v_self->obj);
32334 __pyx_r = __pyx_v_self->obj;
32347 __Pyx_XGIVEREF(__pyx_r);
32348 __Pyx_RefNannyFinishContext();
32361 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self);
32362 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self) {
32363 PyObject *__pyx_r = 0;
32364 __Pyx_RefNannyDeclarations
32365 __Pyx_RefNannySetupContext(
"__get__ (wrapper)", 0);
32366 __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(((
struct __pyx_memoryview_obj *)__pyx_v_self));
32369 __Pyx_RefNannyFinishContext();
32373 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(
struct __pyx_memoryview_obj *__pyx_v_self) {
32374 Py_ssize_t __pyx_v_length;
32375 PyObject *__pyx_r = NULL;
32376 __Pyx_RefNannyDeclarations
32377 PyObject *__pyx_t_1 = NULL;
32378 Py_ssize_t *__pyx_t_2;
32379 Py_ssize_t *__pyx_t_3;
32380 Py_ssize_t *__pyx_t_4;
32381 PyObject *__pyx_t_5 = NULL;
32382 __Pyx_RefNannySetupContext(
"__get__", 0);
32391 __Pyx_XDECREF(__pyx_r);
32392 __pyx_t_1 = PyList_New(0);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 564, __pyx_L1_error)
32393 __Pyx_GOTREF(__pyx_t_1);
32394 __pyx_t_3 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim);
32395 for (__pyx_t_4 = __pyx_v_self->view.shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) {
32396 __pyx_t_2 = __pyx_t_4;
32397 __pyx_v_length = (__pyx_t_2[0]);
32398 __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_length);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 564, __pyx_L1_error)
32399 __Pyx_GOTREF(__pyx_t_5);
32400 if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(2, 564, __pyx_L1_error)
32401 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
32403 __pyx_t_5 = PyList_AsTuple(((PyObject*)__pyx_t_1));
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 564, __pyx_L1_error)
32404 __Pyx_GOTREF(__pyx_t_5);
32405 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
32406 __pyx_r = __pyx_t_5;
32420 __Pyx_XDECREF(__pyx_t_1);
32421 __Pyx_XDECREF(__pyx_t_5);
32422 __Pyx_AddTraceback(
"View.MemoryView.memoryview.shape.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
32425 __Pyx_XGIVEREF(__pyx_r);
32426 __Pyx_RefNannyFinishContext();
32439 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self);
32440 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self) {
32441 PyObject *__pyx_r = 0;
32442 __Pyx_RefNannyDeclarations
32443 __Pyx_RefNannySetupContext(
"__get__ (wrapper)", 0);
32444 __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(((
struct __pyx_memoryview_obj *)__pyx_v_self));
32447 __Pyx_RefNannyFinishContext();
32451 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(
struct __pyx_memoryview_obj *__pyx_v_self) {
32452 Py_ssize_t __pyx_v_stride;
32453 PyObject *__pyx_r = NULL;
32454 __Pyx_RefNannyDeclarations
32456 PyObject *__pyx_t_2 = NULL;
32457 Py_ssize_t *__pyx_t_3;
32458 Py_ssize_t *__pyx_t_4;
32459 Py_ssize_t *__pyx_t_5;
32460 PyObject *__pyx_t_6 = NULL;
32461 __Pyx_RefNannySetupContext(
"__get__", 0);
32470 __pyx_t_1 = ((__pyx_v_self->view.strides == NULL) != 0);
32471 if (unlikely(__pyx_t_1)) {
32480 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__24, NULL);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 570, __pyx_L1_error)
32481 __Pyx_GOTREF(__pyx_t_2);
32482 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
32483 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32484 __PYX_ERR(2, 570, __pyx_L1_error)
32502 __Pyx_XDECREF(__pyx_r);
32503 __pyx_t_2 = PyList_New(0);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 572, __pyx_L1_error)
32504 __Pyx_GOTREF(__pyx_t_2);
32505 __pyx_t_4 = (__pyx_v_self->view.strides + __pyx_v_self->view.ndim);
32506 for (__pyx_t_5 = __pyx_v_self->view.strides; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) {
32507 __pyx_t_3 = __pyx_t_5;
32508 __pyx_v_stride = (__pyx_t_3[0]);
32509 __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_stride);
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 572, __pyx_L1_error)
32510 __Pyx_GOTREF(__pyx_t_6);
32511 if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(2, 572, __pyx_L1_error)
32512 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
32514 __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2));
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 572, __pyx_L1_error)
32515 __Pyx_GOTREF(__pyx_t_6);
32516 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32517 __pyx_r = __pyx_t_6;
32531 __Pyx_XDECREF(__pyx_t_2);
32532 __Pyx_XDECREF(__pyx_t_6);
32533 __Pyx_AddTraceback(
"View.MemoryView.memoryview.strides.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
32536 __Pyx_XGIVEREF(__pyx_r);
32537 __Pyx_RefNannyFinishContext();
32550 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self);
32551 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self) {
32552 PyObject *__pyx_r = 0;
32553 __Pyx_RefNannyDeclarations
32554 __Pyx_RefNannySetupContext(
"__get__ (wrapper)", 0);
32555 __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(((
struct __pyx_memoryview_obj *)__pyx_v_self));
32558 __Pyx_RefNannyFinishContext();
32562 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(
struct __pyx_memoryview_obj *__pyx_v_self) {
32563 Py_ssize_t __pyx_v_suboffset;
32564 PyObject *__pyx_r = NULL;
32565 __Pyx_RefNannyDeclarations
32567 PyObject *__pyx_t_2 = NULL;
32568 PyObject *__pyx_t_3 = NULL;
32569 Py_ssize_t *__pyx_t_4;
32570 Py_ssize_t *__pyx_t_5;
32571 Py_ssize_t *__pyx_t_6;
32572 __Pyx_RefNannySetupContext(
"__get__", 0);
32581 __pyx_t_1 = ((__pyx_v_self->view.suboffsets == NULL) != 0);
32591 __Pyx_XDECREF(__pyx_r);
32592 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 577, __pyx_L1_error)
32593 __Pyx_GOTREF(__pyx_t_2);
32594 __pyx_t_3 = PyNumber_Multiply(__pyx_tuple__25, __pyx_t_2);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 577, __pyx_L1_error)
32595 __Pyx_GOTREF(__pyx_t_3);
32596 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32597 __pyx_r = __pyx_t_3;
32617 __Pyx_XDECREF(__pyx_r);
32618 __pyx_t_3 = PyList_New(0);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 579, __pyx_L1_error)
32619 __Pyx_GOTREF(__pyx_t_3);
32620 __pyx_t_5 = (__pyx_v_self->view.suboffsets + __pyx_v_self->view.ndim);
32621 for (__pyx_t_6 = __pyx_v_self->view.suboffsets; __pyx_t_6 < __pyx_t_5; __pyx_t_6++) {
32622 __pyx_t_4 = __pyx_t_6;
32623 __pyx_v_suboffset = (__pyx_t_4[0]);
32624 __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_suboffset);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 579, __pyx_L1_error)
32625 __Pyx_GOTREF(__pyx_t_2);
32626 if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_2))) __PYX_ERR(2, 579, __pyx_L1_error)
32627 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32629 __pyx_t_2 = PyList_AsTuple(((PyObject*)__pyx_t_3));
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 579, __pyx_L1_error)
32630 __Pyx_GOTREF(__pyx_t_2);
32631 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
32632 __pyx_r = __pyx_t_2;
32646 __Pyx_XDECREF(__pyx_t_2);
32647 __Pyx_XDECREF(__pyx_t_3);
32648 __Pyx_AddTraceback(
"View.MemoryView.memoryview.suboffsets.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
32651 __Pyx_XGIVEREF(__pyx_r);
32652 __Pyx_RefNannyFinishContext();
32665 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self);
32666 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self) {
32667 PyObject *__pyx_r = 0;
32668 __Pyx_RefNannyDeclarations
32669 __Pyx_RefNannySetupContext(
"__get__ (wrapper)", 0);
32670 __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(((
struct __pyx_memoryview_obj *)__pyx_v_self));
32673 __Pyx_RefNannyFinishContext();
32677 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(
struct __pyx_memoryview_obj *__pyx_v_self) {
32678 PyObject *__pyx_r = NULL;
32679 __Pyx_RefNannyDeclarations
32680 PyObject *__pyx_t_1 = NULL;
32681 __Pyx_RefNannySetupContext(
"__get__", 0);
32690 __Pyx_XDECREF(__pyx_r);
32691 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 583, __pyx_L1_error)
32692 __Pyx_GOTREF(__pyx_t_1);
32693 __pyx_r = __pyx_t_1;
32707 __Pyx_XDECREF(__pyx_t_1);
32708 __Pyx_AddTraceback(
"View.MemoryView.memoryview.ndim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
32711 __Pyx_XGIVEREF(__pyx_r);
32712 __Pyx_RefNannyFinishContext();
32725 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self);
32726 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self) {
32727 PyObject *__pyx_r = 0;
32728 __Pyx_RefNannyDeclarations
32729 __Pyx_RefNannySetupContext(
"__get__ (wrapper)", 0);
32730 __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(((
struct __pyx_memoryview_obj *)__pyx_v_self));
32733 __Pyx_RefNannyFinishContext();
32737 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(
struct __pyx_memoryview_obj *__pyx_v_self) {
32738 PyObject *__pyx_r = NULL;
32739 __Pyx_RefNannyDeclarations
32740 PyObject *__pyx_t_1 = NULL;
32741 __Pyx_RefNannySetupContext(
"__get__", 0);
32750 __Pyx_XDECREF(__pyx_r);
32751 __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 587, __pyx_L1_error)
32752 __Pyx_GOTREF(__pyx_t_1);
32753 __pyx_r = __pyx_t_1;
32767 __Pyx_XDECREF(__pyx_t_1);
32768 __Pyx_AddTraceback(
"View.MemoryView.memoryview.itemsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
32771 __Pyx_XGIVEREF(__pyx_r);
32772 __Pyx_RefNannyFinishContext();
32785 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self);
32786 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self) {
32787 PyObject *__pyx_r = 0;
32788 __Pyx_RefNannyDeclarations
32789 __Pyx_RefNannySetupContext(
"__get__ (wrapper)", 0);
32790 __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(((
struct __pyx_memoryview_obj *)__pyx_v_self));
32793 __Pyx_RefNannyFinishContext();
32797 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(
struct __pyx_memoryview_obj *__pyx_v_self) {
32798 PyObject *__pyx_r = NULL;
32799 __Pyx_RefNannyDeclarations
32800 PyObject *__pyx_t_1 = NULL;
32801 PyObject *__pyx_t_2 = NULL;
32802 PyObject *__pyx_t_3 = NULL;
32803 __Pyx_RefNannySetupContext(
"__get__", 0);
32812 __Pyx_XDECREF(__pyx_r);
32813 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 591, __pyx_L1_error)
32814 __Pyx_GOTREF(__pyx_t_1);
32815 __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 591, __pyx_L1_error)
32816 __Pyx_GOTREF(__pyx_t_2);
32817 __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 591, __pyx_L1_error)
32818 __Pyx_GOTREF(__pyx_t_3);
32819 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
32820 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
32821 __pyx_r = __pyx_t_3;
32835 __Pyx_XDECREF(__pyx_t_1);
32836 __Pyx_XDECREF(__pyx_t_2);
32837 __Pyx_XDECREF(__pyx_t_3);
32838 __Pyx_AddTraceback(
"View.MemoryView.memoryview.nbytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
32841 __Pyx_XGIVEREF(__pyx_r);
32842 __Pyx_RefNannyFinishContext();
32855 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self);
32856 static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self) {
32857 PyObject *__pyx_r = 0;
32858 __Pyx_RefNannyDeclarations
32859 __Pyx_RefNannySetupContext(
"__get__ (wrapper)", 0);
32860 __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(((
struct __pyx_memoryview_obj *)__pyx_v_self));
32863 __Pyx_RefNannyFinishContext();
32867 static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(
struct __pyx_memoryview_obj *__pyx_v_self) {
32868 PyObject *__pyx_v_result = NULL;
32869 PyObject *__pyx_v_length = NULL;
32870 PyObject *__pyx_r = NULL;
32871 __Pyx_RefNannyDeclarations
32874 Py_ssize_t *__pyx_t_3;
32875 Py_ssize_t *__pyx_t_4;
32876 Py_ssize_t *__pyx_t_5;
32877 PyObject *__pyx_t_6 = NULL;
32878 __Pyx_RefNannySetupContext(
"__get__", 0);
32887 __pyx_t_1 = (__pyx_v_self->_size == Py_None);
32888 __pyx_t_2 = (__pyx_t_1 != 0);
32898 __Pyx_INCREF(__pyx_int_1);
32899 __pyx_v_result = __pyx_int_1;
32908 __pyx_t_4 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim);
32909 for (__pyx_t_5 = __pyx_v_self->view.shape; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) {
32910 __pyx_t_3 = __pyx_t_5;
32911 __pyx_t_6 = PyInt_FromSsize_t((__pyx_t_3[0]));
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 598, __pyx_L1_error)
32912 __Pyx_GOTREF(__pyx_t_6);
32913 __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_6);
32923 __pyx_t_6 = PyNumber_InPlaceMultiply(__pyx_v_result, __pyx_v_length);
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 599, __pyx_L1_error)
32924 __Pyx_GOTREF(__pyx_t_6);
32925 __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_6);
32936 __Pyx_INCREF(__pyx_v_result);
32937 __Pyx_GIVEREF(__pyx_v_result);
32938 __Pyx_GOTREF(__pyx_v_self->_size);
32939 __Pyx_DECREF(__pyx_v_self->_size);
32940 __pyx_v_self->_size = __pyx_v_result;
32958 __Pyx_XDECREF(__pyx_r);
32959 __Pyx_INCREF(__pyx_v_self->_size);
32960 __pyx_r = __pyx_v_self->_size;
32973 __Pyx_XDECREF(__pyx_t_6);
32974 __Pyx_AddTraceback(
"View.MemoryView.memoryview.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
32977 __Pyx_XDECREF(__pyx_v_result);
32978 __Pyx_XDECREF(__pyx_v_length);
32979 __Pyx_XGIVEREF(__pyx_r);
32980 __Pyx_RefNannyFinishContext();
32993 static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self);
32994 static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self) {
32995 Py_ssize_t __pyx_r;
32996 __Pyx_RefNannyDeclarations
32997 __Pyx_RefNannySetupContext(
"__len__ (wrapper)", 0);
32998 __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(((
struct __pyx_memoryview_obj *)__pyx_v_self));
33001 __Pyx_RefNannyFinishContext();
33005 static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(
struct __pyx_memoryview_obj *__pyx_v_self) {
33006 Py_ssize_t __pyx_r;
33007 __Pyx_RefNannyDeclarations
33009 __Pyx_RefNannySetupContext(
"__len__", 0);
33018 __pyx_t_1 = ((__pyx_v_self->view.ndim >= 1) != 0);
33028 __pyx_r = (__pyx_v_self->view.shape[0]);
33060 __Pyx_RefNannyFinishContext();
33073 static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self);
33074 static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self) {
33075 PyObject *__pyx_r = 0;
33076 __Pyx_RefNannyDeclarations
33077 __Pyx_RefNannySetupContext(
"__repr__ (wrapper)", 0);
33078 __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(((
struct __pyx_memoryview_obj *)__pyx_v_self));
33081 __Pyx_RefNannyFinishContext();
33085 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(
struct __pyx_memoryview_obj *__pyx_v_self) {
33086 PyObject *__pyx_r = NULL;
33087 __Pyx_RefNannyDeclarations
33088 PyObject *__pyx_t_1 = NULL;
33089 PyObject *__pyx_t_2 = NULL;
33090 PyObject *__pyx_t_3 = NULL;
33091 __Pyx_RefNannySetupContext(
"__repr__", 0);
33100 __Pyx_XDECREF(__pyx_r);
33101 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 612, __pyx_L1_error)
33102 __Pyx_GOTREF(__pyx_t_1);
33103 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 612, __pyx_L1_error)
33104 __Pyx_GOTREF(__pyx_t_2);
33105 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
33106 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 612, __pyx_L1_error)
33107 __Pyx_GOTREF(__pyx_t_1);
33108 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
33117 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self));
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 613, __pyx_L1_error)
33118 __Pyx_GOTREF(__pyx_t_2);
33127 __pyx_t_3 = PyTuple_New(2);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 612, __pyx_L1_error)
33128 __Pyx_GOTREF(__pyx_t_3);
33129 __Pyx_GIVEREF(__pyx_t_1);
33130 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
33131 __Pyx_GIVEREF(__pyx_t_2);
33132 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
33135 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_t_3);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 612, __pyx_L1_error)
33136 __Pyx_GOTREF(__pyx_t_2);
33137 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
33138 __pyx_r = __pyx_t_2;
33152 __Pyx_XDECREF(__pyx_t_1);
33153 __Pyx_XDECREF(__pyx_t_2);
33154 __Pyx_XDECREF(__pyx_t_3);
33155 __Pyx_AddTraceback(
"View.MemoryView.memoryview.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
33158 __Pyx_XGIVEREF(__pyx_r);
33159 __Pyx_RefNannyFinishContext();
33172 static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self);
33173 static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self) {
33174 PyObject *__pyx_r = 0;
33175 __Pyx_RefNannyDeclarations
33176 __Pyx_RefNannySetupContext(
"__str__ (wrapper)", 0);
33177 __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(((
struct __pyx_memoryview_obj *)__pyx_v_self));
33180 __Pyx_RefNannyFinishContext();
33184 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(
struct __pyx_memoryview_obj *__pyx_v_self) {
33185 PyObject *__pyx_r = NULL;
33186 __Pyx_RefNannyDeclarations
33187 PyObject *__pyx_t_1 = NULL;
33188 PyObject *__pyx_t_2 = NULL;
33189 __Pyx_RefNannySetupContext(
"__str__", 0);
33198 __Pyx_XDECREF(__pyx_r);
33199 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 616, __pyx_L1_error)
33200 __Pyx_GOTREF(__pyx_t_1);
33201 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 616, __pyx_L1_error)
33202 __Pyx_GOTREF(__pyx_t_2);
33203 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
33204 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 616, __pyx_L1_error)
33205 __Pyx_GOTREF(__pyx_t_1);
33206 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
33207 __pyx_t_2 = PyTuple_New(1);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 616, __pyx_L1_error)
33208 __Pyx_GOTREF(__pyx_t_2);
33209 __Pyx_GIVEREF(__pyx_t_1);
33210 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
33212 __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_object, __pyx_t_2);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 616, __pyx_L1_error)
33213 __Pyx_GOTREF(__pyx_t_1);
33214 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
33215 __pyx_r = __pyx_t_1;
33229 __Pyx_XDECREF(__pyx_t_1);
33230 __Pyx_XDECREF(__pyx_t_2);
33231 __Pyx_AddTraceback(
"View.MemoryView.memoryview.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
33234 __Pyx_XGIVEREF(__pyx_r);
33235 __Pyx_RefNannyFinishContext();
33248 static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused);
33249 static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
33250 PyObject *__pyx_r = 0;
33251 __Pyx_RefNannyDeclarations
33252 __Pyx_RefNannySetupContext(
"is_c_contig (wrapper)", 0);
33253 __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(((
struct __pyx_memoryview_obj *)__pyx_v_self));
33256 __Pyx_RefNannyFinishContext();
33260 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(
struct __pyx_memoryview_obj *__pyx_v_self) {
33261 __Pyx_memviewslice *__pyx_v_mslice;
33262 __Pyx_memviewslice __pyx_v_tmp;
33263 PyObject *__pyx_r = NULL;
33264 __Pyx_RefNannyDeclarations
33265 __Pyx_memviewslice *__pyx_t_1;
33266 PyObject *__pyx_t_2 = NULL;
33267 __Pyx_RefNannySetupContext(
"is_c_contig", 0);
33276 __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp));
if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(2, 622, __pyx_L1_error)
33277 __pyx_v_mslice = __pyx_t_1;
33286 __Pyx_XDECREF(__pyx_r);
33287 __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]),
'C', __pyx_v_self->view.ndim));
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 623, __pyx_L1_error)
33288 __Pyx_GOTREF(__pyx_t_2);
33289 __pyx_r = __pyx_t_2;
33303 __Pyx_XDECREF(__pyx_t_2);
33304 __Pyx_AddTraceback(
"View.MemoryView.memoryview.is_c_contig", __pyx_clineno, __pyx_lineno, __pyx_filename);
33307 __Pyx_XGIVEREF(__pyx_r);
33308 __Pyx_RefNannyFinishContext();
33321 static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused);
33322 static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
33323 PyObject *__pyx_r = 0;
33324 __Pyx_RefNannyDeclarations
33325 __Pyx_RefNannySetupContext(
"is_f_contig (wrapper)", 0);
33326 __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(((
struct __pyx_memoryview_obj *)__pyx_v_self));
33329 __Pyx_RefNannyFinishContext();
33333 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(
struct __pyx_memoryview_obj *__pyx_v_self) {
33334 __Pyx_memviewslice *__pyx_v_mslice;
33335 __Pyx_memviewslice __pyx_v_tmp;
33336 PyObject *__pyx_r = NULL;
33337 __Pyx_RefNannyDeclarations
33338 __Pyx_memviewslice *__pyx_t_1;
33339 PyObject *__pyx_t_2 = NULL;
33340 __Pyx_RefNannySetupContext(
"is_f_contig", 0);
33349 __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp));
if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(2, 628, __pyx_L1_error)
33350 __pyx_v_mslice = __pyx_t_1;
33359 __Pyx_XDECREF(__pyx_r);
33360 __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]),
'F', __pyx_v_self->view.ndim));
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 629, __pyx_L1_error)
33361 __Pyx_GOTREF(__pyx_t_2);
33362 __pyx_r = __pyx_t_2;
33376 __Pyx_XDECREF(__pyx_t_2);
33377 __Pyx_AddTraceback(
"View.MemoryView.memoryview.is_f_contig", __pyx_clineno, __pyx_lineno, __pyx_filename);
33380 __Pyx_XGIVEREF(__pyx_r);
33381 __Pyx_RefNannyFinishContext();
33394 static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused);
33395 static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
33396 PyObject *__pyx_r = 0;
33397 __Pyx_RefNannyDeclarations
33398 __Pyx_RefNannySetupContext(
"copy (wrapper)", 0);
33399 __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(((
struct __pyx_memoryview_obj *)__pyx_v_self));
33402 __Pyx_RefNannyFinishContext();
33406 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(
struct __pyx_memoryview_obj *__pyx_v_self) {
33407 __Pyx_memviewslice __pyx_v_mslice;
33409 PyObject *__pyx_r = NULL;
33410 __Pyx_RefNannyDeclarations
33411 __Pyx_memviewslice __pyx_t_1;
33412 PyObject *__pyx_t_2 = NULL;
33413 __Pyx_RefNannySetupContext(
"copy", 0);
33422 __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_F_CONTIGUOUS));
33431 __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_mslice));
33440 __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_mslice), ((
char *)
"c"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_C_CONTIGUOUS), __pyx_v_self->dtype_is_object);
if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 636, __pyx_L1_error)
33441 __pyx_v_mslice = __pyx_t_1;
33450 __Pyx_XDECREF(__pyx_r);
33451 __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_mslice));
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 641, __pyx_L1_error)
33452 __Pyx_GOTREF(__pyx_t_2);
33453 __pyx_r = __pyx_t_2;
33467 __Pyx_XDECREF(__pyx_t_2);
33468 __Pyx_AddTraceback(
"View.MemoryView.memoryview.copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
33471 __Pyx_XGIVEREF(__pyx_r);
33472 __Pyx_RefNannyFinishContext();
33485 static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused);
33486 static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
33487 PyObject *__pyx_r = 0;
33488 __Pyx_RefNannyDeclarations
33489 __Pyx_RefNannySetupContext(
"copy_fortran (wrapper)", 0);
33490 __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(((
struct __pyx_memoryview_obj *)__pyx_v_self));
33493 __Pyx_RefNannyFinishContext();
33497 static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(
struct __pyx_memoryview_obj *__pyx_v_self) {
33498 __Pyx_memviewslice __pyx_v_src;
33499 __Pyx_memviewslice __pyx_v_dst;
33501 PyObject *__pyx_r = NULL;
33502 __Pyx_RefNannyDeclarations
33503 __Pyx_memviewslice __pyx_t_1;
33504 PyObject *__pyx_t_2 = NULL;
33505 __Pyx_RefNannySetupContext(
"copy_fortran", 0);
33514 __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_C_CONTIGUOUS));
33523 __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_src));
33532 __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_src), ((
char *)
"fortran"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_F_CONTIGUOUS), __pyx_v_self->dtype_is_object);
if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 648, __pyx_L1_error)
33533 __pyx_v_dst = __pyx_t_1;
33542 __Pyx_XDECREF(__pyx_r);
33543 __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_dst));
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 653, __pyx_L1_error)
33544 __Pyx_GOTREF(__pyx_t_2);
33545 __pyx_r = __pyx_t_2;
33559 __Pyx_XDECREF(__pyx_t_2);
33560 __Pyx_AddTraceback(
"View.MemoryView.memoryview.copy_fortran", __pyx_clineno, __pyx_lineno, __pyx_filename);
33563 __Pyx_XGIVEREF(__pyx_r);
33564 __Pyx_RefNannyFinishContext();
33575 static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused);
33576 static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
33577 PyObject *__pyx_r = 0;
33578 __Pyx_RefNannyDeclarations
33579 __Pyx_RefNannySetupContext(
"__reduce_cython__ (wrapper)", 0);
33580 __pyx_r = __pyx_pf___pyx_memoryview___reduce_cython__(((
struct __pyx_memoryview_obj *)__pyx_v_self));
33583 __Pyx_RefNannyFinishContext();
33587 static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED
struct __pyx_memoryview_obj *__pyx_v_self) {
33588 PyObject *__pyx_r = NULL;
33589 __Pyx_RefNannyDeclarations
33590 PyObject *__pyx_t_1 = NULL;
33591 __Pyx_RefNannySetupContext(
"__reduce_cython__", 0);
33599 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__26, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2, __pyx_L1_error)
33600 __Pyx_GOTREF(__pyx_t_1);
33601 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
33602 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
33603 __PYX_ERR(2, 2, __pyx_L1_error)
33613 __Pyx_XDECREF(__pyx_t_1);
33614 __Pyx_AddTraceback(
"View.MemoryView.memoryview.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
33616 __Pyx_XGIVEREF(__pyx_r);
33617 __Pyx_RefNannyFinishContext();
33629 static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state);
33630 static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
33631 PyObject *__pyx_r = 0;
33632 __Pyx_RefNannyDeclarations
33633 __Pyx_RefNannySetupContext(
"__setstate_cython__ (wrapper)", 0);
33634 __pyx_r = __pyx_pf___pyx_memoryview_2__setstate_cython__(((
struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
33637 __Pyx_RefNannyFinishContext();
33641 static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED
struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
33642 PyObject *__pyx_r = NULL;
33643 __Pyx_RefNannyDeclarations
33644 PyObject *__pyx_t_1 = NULL;
33645 __Pyx_RefNannySetupContext(
"__setstate_cython__", 0);
33652 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__27, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error)
33653 __Pyx_GOTREF(__pyx_t_1);
33654 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
33655 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
33656 __PYX_ERR(2, 4, __pyx_L1_error)
33667 __Pyx_XDECREF(__pyx_t_1);
33668 __Pyx_AddTraceback(
"View.MemoryView.memoryview.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
33670 __Pyx_XGIVEREF(__pyx_r);
33671 __Pyx_RefNannyFinishContext();
33683 static PyObject *__pyx_memoryview_new(PyObject *__pyx_v_o,
int __pyx_v_flags,
int __pyx_v_dtype_is_object, __Pyx_TypeInfo *__pyx_v_typeinfo) {
33684 struct __pyx_memoryview_obj *__pyx_v_result = 0;
33685 PyObject *__pyx_r = NULL;
33686 __Pyx_RefNannyDeclarations
33687 PyObject *__pyx_t_1 = NULL;
33688 PyObject *__pyx_t_2 = NULL;
33689 PyObject *__pyx_t_3 = NULL;
33690 __Pyx_RefNannySetupContext(
"memoryview_cwrapper", 0);
33699 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 658, __pyx_L1_error)
33700 __Pyx_GOTREF(__pyx_t_1);
33701 __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 658, __pyx_L1_error)
33702 __Pyx_GOTREF(__pyx_t_2);
33703 __pyx_t_3 = PyTuple_New(3);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 658, __pyx_L1_error)
33704 __Pyx_GOTREF(__pyx_t_3);
33705 __Pyx_INCREF(__pyx_v_o);
33706 __Pyx_GIVEREF(__pyx_v_o);
33707 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_o);
33708 __Pyx_GIVEREF(__pyx_t_1);
33709 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
33710 __Pyx_GIVEREF(__pyx_t_2);
33711 PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2);
33714 __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 658, __pyx_L1_error)
33715 __Pyx_GOTREF(__pyx_t_2);
33716 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
33717 __pyx_v_result = ((
struct __pyx_memoryview_obj *)__pyx_t_2);
33727 __pyx_v_result->typeinfo = __pyx_v_typeinfo;
33736 __Pyx_XDECREF(__pyx_r);
33737 __Pyx_INCREF(((PyObject *)__pyx_v_result));
33738 __pyx_r = ((PyObject *)__pyx_v_result);
33751 __Pyx_XDECREF(__pyx_t_1);
33752 __Pyx_XDECREF(__pyx_t_2);
33753 __Pyx_XDECREF(__pyx_t_3);
33754 __Pyx_AddTraceback(
"View.MemoryView.memoryview_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
33757 __Pyx_XDECREF((PyObject *)__pyx_v_result);
33758 __Pyx_XGIVEREF(__pyx_r);
33759 __Pyx_RefNannyFinishContext();
33771 static CYTHON_INLINE
int __pyx_memoryview_check(PyObject *__pyx_v_o) {
33773 __Pyx_RefNannyDeclarations
33775 __Pyx_RefNannySetupContext(
"memoryview_check", 0);
33784 __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o, __pyx_memoryview_type);
33785 __pyx_r = __pyx_t_1;
33798 __Pyx_RefNannyFinishContext();
33810 static PyObject *_unellipsify(PyObject *__pyx_v_index,
int __pyx_v_ndim) {
33811 PyObject *__pyx_v_tup = NULL;
33812 PyObject *__pyx_v_result = NULL;
33813 int __pyx_v_have_slices;
33814 int __pyx_v_seen_ellipsis;
33815 CYTHON_UNUSED PyObject *__pyx_v_idx = NULL;
33816 PyObject *__pyx_v_item = NULL;
33817 Py_ssize_t __pyx_v_nslices;
33818 PyObject *__pyx_r = NULL;
33819 __Pyx_RefNannyDeclarations
33822 PyObject *__pyx_t_3 = NULL;
33823 PyObject *__pyx_t_4 = NULL;
33824 Py_ssize_t __pyx_t_5;
33825 PyObject *(*__pyx_t_6)(PyObject *);
33826 PyObject *__pyx_t_7 = NULL;
33827 Py_ssize_t __pyx_t_8;
33830 PyObject *__pyx_t_11 = NULL;
33831 __Pyx_RefNannySetupContext(
"_unellipsify", 0);
33840 __pyx_t_1 = PyTuple_Check(__pyx_v_index);
33841 __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
33851 __pyx_t_3 = PyTuple_New(1);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 672, __pyx_L1_error)
33852 __Pyx_GOTREF(__pyx_t_3);
33853 __Pyx_INCREF(__pyx_v_index);
33854 __Pyx_GIVEREF(__pyx_v_index);
33855 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_index);
33856 __pyx_v_tup = __pyx_t_3;
33877 __Pyx_INCREF(__pyx_v_index);
33878 __pyx_v_tup = __pyx_v_index;
33889 __pyx_t_3 = PyList_New(0);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 676, __pyx_L1_error)
33890 __Pyx_GOTREF(__pyx_t_3);
33891 __pyx_v_result = ((PyObject*)__pyx_t_3);
33901 __pyx_v_have_slices = 0;
33910 __pyx_v_seen_ellipsis = 0;
33919 __Pyx_INCREF(__pyx_int_0);
33920 __pyx_t_3 = __pyx_int_0;
33921 if (likely(PyList_CheckExact(__pyx_v_tup)) || PyTuple_CheckExact(__pyx_v_tup)) {
33922 __pyx_t_4 = __pyx_v_tup; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
33925 __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_tup);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 679, __pyx_L1_error)
33926 __Pyx_GOTREF(__pyx_t_4);
33927 __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext;
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 679, __pyx_L1_error)
33930 if (likely(!__pyx_t_6)) {
33931 if (likely(PyList_CheckExact(__pyx_t_4))) {
33932 if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4))
break;
33933 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 33934 __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++;
if (unlikely(0 < 0)) __PYX_ERR(2, 679, __pyx_L1_error)
33936 __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++;
if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 679, __pyx_L1_error)
33937 __Pyx_GOTREF(__pyx_t_7);
33940 if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4))
break;
33941 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 33942 __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++;
if (unlikely(0 < 0)) __PYX_ERR(2, 679, __pyx_L1_error)
33944 __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++;
if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 679, __pyx_L1_error)
33945 __Pyx_GOTREF(__pyx_t_7);
33949 __pyx_t_7 = __pyx_t_6(__pyx_t_4);
33950 if (unlikely(!__pyx_t_7)) {
33951 PyObject* exc_type = PyErr_Occurred();
33953 if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
33954 else __PYX_ERR(2, 679, __pyx_L1_error)
33958 __Pyx_GOTREF(__pyx_t_7);
33960 __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_7);
33962 __Pyx_INCREF(__pyx_t_3);
33963 __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_3);
33964 __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0);
if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 679, __pyx_L1_error)
33965 __Pyx_GOTREF(__pyx_t_7);
33966 __Pyx_DECREF(__pyx_t_3);
33967 __pyx_t_3 = __pyx_t_7;
33977 __pyx_t_2 = (__pyx_v_item == __pyx_builtin_Ellipsis);
33978 __pyx_t_1 = (__pyx_t_2 != 0);
33988 __pyx_t_1 = ((!(__pyx_v_seen_ellipsis != 0)) != 0);
33998 __pyx_t_8 = PyObject_Length(__pyx_v_tup);
if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(2, 682, __pyx_L1_error)
33999 __pyx_t_7 = PyList_New(1 * ((((__pyx_v_ndim - __pyx_t_8) + 1)<0) ? 0:((__pyx_v_ndim - __pyx_t_8) + 1)));
if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 682, __pyx_L1_error)
34000 __Pyx_GOTREF(__pyx_t_7);
34001 { Py_ssize_t __pyx_temp;
34002 for (__pyx_temp=0; __pyx_temp < ((__pyx_v_ndim - __pyx_t_8) + 1); __pyx_temp++) {
34003 __Pyx_INCREF(__pyx_slice__4);
34004 __Pyx_GIVEREF(__pyx_slice__4);
34005 PyList_SET_ITEM(__pyx_t_7, __pyx_temp, __pyx_slice__4);
34008 __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_7);
if (unlikely(__pyx_t_9 == ((
int)-1))) __PYX_ERR(2, 682, __pyx_L1_error)
34009 __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
34018 __pyx_v_seen_ellipsis = 1;
34038 __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_slice__4);
if (unlikely(__pyx_t_9 == ((
int)-1))) __PYX_ERR(2, 685, __pyx_L1_error)
34049 __pyx_v_have_slices = 1;
34069 __pyx_t_2 = PySlice_Check(__pyx_v_item);
34070 __pyx_t_10 = ((!(__pyx_t_2 != 0)) != 0);
34073 __pyx_t_1 = __pyx_t_10;
34074 goto __pyx_L9_bool_binop_done;
34076 __pyx_t_10 = ((!(PyIndex_Check(__pyx_v_item) != 0)) != 0);
34077 __pyx_t_1 = __pyx_t_10;
34078 __pyx_L9_bool_binop_done:;
34079 if (unlikely(__pyx_t_1)) {
34088 __pyx_t_7 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Cannot_index_with_type_s, ((PyObject *)Py_TYPE(__pyx_v_item)));
if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 689, __pyx_L1_error)
34089 __Pyx_GOTREF(__pyx_t_7);
34090 __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_7);
if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 689, __pyx_L1_error)
34091 __Pyx_GOTREF(__pyx_t_11);
34092 __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
34093 __Pyx_Raise(__pyx_t_11, 0, 0, 0);
34094 __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
34095 __PYX_ERR(2, 689, __pyx_L1_error)
34113 __pyx_t_10 = (__pyx_v_have_slices != 0);
34116 __pyx_t_1 = __pyx_t_10;
34117 goto __pyx_L11_bool_binop_done;
34119 __pyx_t_10 = PySlice_Check(__pyx_v_item);
34120 __pyx_t_2 = (__pyx_t_10 != 0);
34121 __pyx_t_1 = __pyx_t_2;
34122 __pyx_L11_bool_binop_done:;
34123 __pyx_v_have_slices = __pyx_t_1;
34132 __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_item);
if (unlikely(__pyx_t_9 == ((
int)-1))) __PYX_ERR(2, 692, __pyx_L1_error)
34144 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
34145 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
34154 __pyx_t_5 = PyList_GET_SIZE(__pyx_v_result);
if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 694, __pyx_L1_error)
34155 __pyx_v_nslices = (__pyx_v_ndim - __pyx_t_5);
34164 __pyx_t_1 = (__pyx_v_nslices != 0);
34174 __pyx_t_3 = PyList_New(1 * ((__pyx_v_nslices<0) ? 0:__pyx_v_nslices));
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 696, __pyx_L1_error)
34175 __Pyx_GOTREF(__pyx_t_3);
34176 { Py_ssize_t __pyx_temp;
34177 for (__pyx_temp=0; __pyx_temp < __pyx_v_nslices; __pyx_temp++) {
34178 __Pyx_INCREF(__pyx_slice__4);
34179 __Pyx_GIVEREF(__pyx_slice__4);
34180 PyList_SET_ITEM(__pyx_t_3, __pyx_temp, __pyx_slice__4);
34183 __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_3);
if (unlikely(__pyx_t_9 == ((
int)-1))) __PYX_ERR(2, 696, __pyx_L1_error)
34184 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
34202 __Pyx_XDECREF(__pyx_r);
34203 if (!__pyx_v_have_slices) {
34205 __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_have_slices);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error)
34206 __Pyx_GOTREF(__pyx_t_4);
34207 __pyx_t_3 = __pyx_t_4;
34209 goto __pyx_L14_bool_binop_done;
34211 __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_nslices);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error)
34212 __Pyx_GOTREF(__pyx_t_4);
34213 __pyx_t_3 = __pyx_t_4;
34215 __pyx_L14_bool_binop_done:;
34216 __pyx_t_4 = PyList_AsTuple(__pyx_v_result);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error)
34217 __Pyx_GOTREF(__pyx_t_4);
34218 __pyx_t_11 = PyTuple_New(2);
if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 698, __pyx_L1_error)
34219 __Pyx_GOTREF(__pyx_t_11);
34220 __Pyx_GIVEREF(__pyx_t_3);
34221 PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3);
34222 __Pyx_GIVEREF(__pyx_t_4);
34223 PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_4);
34226 __pyx_r = ((PyObject*)__pyx_t_11);
34240 __Pyx_XDECREF(__pyx_t_3);
34241 __Pyx_XDECREF(__pyx_t_4);
34242 __Pyx_XDECREF(__pyx_t_7);
34243 __Pyx_XDECREF(__pyx_t_11);
34244 __Pyx_AddTraceback(
"View.MemoryView._unellipsify", __pyx_clineno, __pyx_lineno, __pyx_filename);
34247 __Pyx_XDECREF(__pyx_v_tup);
34248 __Pyx_XDECREF(__pyx_v_result);
34249 __Pyx_XDECREF(__pyx_v_idx);
34250 __Pyx_XDECREF(__pyx_v_item);
34251 __Pyx_XGIVEREF(__pyx_r);
34252 __Pyx_RefNannyFinishContext();
34264 static PyObject *assert_direct_dimensions(Py_ssize_t *__pyx_v_suboffsets,
int __pyx_v_ndim) {
34265 Py_ssize_t __pyx_v_suboffset;
34266 PyObject *__pyx_r = NULL;
34267 __Pyx_RefNannyDeclarations
34268 Py_ssize_t *__pyx_t_1;
34269 Py_ssize_t *__pyx_t_2;
34270 Py_ssize_t *__pyx_t_3;
34272 PyObject *__pyx_t_5 = NULL;
34273 __Pyx_RefNannySetupContext(
"assert_direct_dimensions", 0);
34282 __pyx_t_2 = (__pyx_v_suboffsets + __pyx_v_ndim);
34283 for (__pyx_t_3 = __pyx_v_suboffsets; __pyx_t_3 < __pyx_t_2; __pyx_t_3++) {
34284 __pyx_t_1 = __pyx_t_3;
34285 __pyx_v_suboffset = (__pyx_t_1[0]);
34294 __pyx_t_4 = ((__pyx_v_suboffset >= 0) != 0);
34295 if (unlikely(__pyx_t_4)) {
34304 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__28, NULL);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 703, __pyx_L1_error)
34305 __Pyx_GOTREF(__pyx_t_5);
34306 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
34307 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
34308 __PYX_ERR(2, 703, __pyx_L1_error)
34329 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
34332 __Pyx_XDECREF(__pyx_t_5);
34333 __Pyx_AddTraceback(
"View.MemoryView.assert_direct_dimensions", __pyx_clineno, __pyx_lineno, __pyx_filename);
34336 __Pyx_XGIVEREF(__pyx_r);
34337 __Pyx_RefNannyFinishContext();
34349 static struct __pyx_memoryview_obj *__pyx_memview_slice(
struct __pyx_memoryview_obj *__pyx_v_memview, PyObject *__pyx_v_indices) {
34350 int __pyx_v_new_ndim;
34351 int __pyx_v_suboffset_dim;
34353 __Pyx_memviewslice __pyx_v_src;
34354 __Pyx_memviewslice __pyx_v_dst;
34355 __Pyx_memviewslice *__pyx_v_p_src;
34356 struct __pyx_memoryviewslice_obj *__pyx_v_memviewsliceobj = 0;
34357 __Pyx_memviewslice *__pyx_v_p_dst;
34358 int *__pyx_v_p_suboffset_dim;
34359 Py_ssize_t __pyx_v_start;
34360 Py_ssize_t __pyx_v_stop;
34361 Py_ssize_t __pyx_v_step;
34362 int __pyx_v_have_start;
34363 int __pyx_v_have_stop;
34364 int __pyx_v_have_step;
34365 PyObject *__pyx_v_index = NULL;
34366 struct __pyx_memoryview_obj *__pyx_r = NULL;
34367 __Pyx_RefNannyDeclarations
34370 PyObject *__pyx_t_3 = NULL;
34371 struct __pyx_memoryview_obj *__pyx_t_4;
34374 Py_ssize_t __pyx_t_7;
34375 PyObject *(*__pyx_t_8)(PyObject *);
34376 PyObject *__pyx_t_9 = NULL;
34377 Py_ssize_t __pyx_t_10;
34379 Py_ssize_t __pyx_t_12;
34380 __Pyx_RefNannySetupContext(
"memview_slice", 0);
34389 __pyx_v_new_ndim = 0;
34390 __pyx_v_suboffset_dim = -1;
34399 (void)(memset((&__pyx_v_dst), 0, (
sizeof(__pyx_v_dst))));
34408 #ifndef CYTHON_WITHOUT_ASSERTIONS 34409 if (unlikely(!Py_OptimizeFlag)) {
34410 if (unlikely(!((__pyx_v_memview->view.ndim > 0) != 0))) {
34411 PyErr_SetNone(PyExc_AssertionError);
34412 __PYX_ERR(2, 722, __pyx_L1_error)
34424 __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type);
34425 __pyx_t_2 = (__pyx_t_1 != 0);
34435 if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(2, 725, __pyx_L1_error)
34436 __pyx_t_3 = ((PyObject *)__pyx_v_memview);
34437 __Pyx_INCREF(__pyx_t_3);
34438 __pyx_v_memviewsliceobj = ((
struct __pyx_memoryviewslice_obj *)__pyx_t_3);
34448 __pyx_v_p_src = (&__pyx_v_memviewsliceobj->from_slice);
34468 __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_src));
34477 __pyx_v_p_src = (&__pyx_v_src);
34488 __pyx_t_4 = __pyx_v_p_src->memview;
34489 __pyx_v_dst.memview = __pyx_t_4;
34498 __pyx_t_5 = __pyx_v_p_src->data;
34499 __pyx_v_dst.data = __pyx_t_5;
34508 __pyx_v_p_dst = (&__pyx_v_dst);
34517 __pyx_v_p_suboffset_dim = (&__pyx_v_suboffset_dim);
34527 if (likely(PyList_CheckExact(__pyx_v_indices)) || PyTuple_CheckExact(__pyx_v_indices)) {
34528 __pyx_t_3 = __pyx_v_indices; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0;
34531 __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_indices);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 746, __pyx_L1_error)
34532 __Pyx_GOTREF(__pyx_t_3);
34533 __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext;
if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 746, __pyx_L1_error)
34536 if (likely(!__pyx_t_8)) {
34537 if (likely(PyList_CheckExact(__pyx_t_3))) {
34538 if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3))
break;
34539 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 34540 __pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++;
if (unlikely(0 < 0)) __PYX_ERR(2, 746, __pyx_L1_error)
34542 __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++;
if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 746, __pyx_L1_error)
34543 __Pyx_GOTREF(__pyx_t_9);
34546 if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3))
break;
34547 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 34548 __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++;
if (unlikely(0 < 0)) __PYX_ERR(2, 746, __pyx_L1_error)
34550 __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++;
if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 746, __pyx_L1_error)
34551 __Pyx_GOTREF(__pyx_t_9);
34555 __pyx_t_9 = __pyx_t_8(__pyx_t_3);
34556 if (unlikely(!__pyx_t_9)) {
34557 PyObject* exc_type = PyErr_Occurred();
34559 if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
34560 else __PYX_ERR(2, 746, __pyx_L1_error)
34564 __Pyx_GOTREF(__pyx_t_9);
34566 __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_9);
34568 __pyx_v_dim = __pyx_t_6;
34569 __pyx_t_6 = (__pyx_t_6 + 1);
34578 __pyx_t_2 = (PyIndex_Check(__pyx_v_index) != 0);
34588 __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index);
if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 751, __pyx_L1_error)
34597 __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_t_10, 0, 0, 0, 0, 0, 0);
if (unlikely(__pyx_t_11 == ((
int)-1))) __PYX_ERR(2, 748, __pyx_L1_error)
34616 __pyx_t_2 = (__pyx_v_index == Py_None);
34617 __pyx_t_1 = (__pyx_t_2 != 0);
34627 (__pyx_v_p_dst->shape[__pyx_v_new_ndim]) = 1;
34636 (__pyx_v_p_dst->strides[__pyx_v_new_ndim]) = 0;
34645 (__pyx_v_p_dst->suboffsets[__pyx_v_new_ndim]) = -1
L;
34654 __pyx_v_new_ndim = (__pyx_v_new_ndim + 1);
34674 __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start);
if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 760, __pyx_L1_error)
34675 __Pyx_GOTREF(__pyx_t_9);
34676 __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9);
if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 760, __pyx_L1_error)
34678 __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
34680 __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9);
if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 760, __pyx_L1_error)
34681 __pyx_t_10 = __pyx_t_12;
34682 __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
34683 goto __pyx_L7_bool_binop_done;
34686 __pyx_L7_bool_binop_done:;
34687 __pyx_v_start = __pyx_t_10;
34696 __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop);
if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 761, __pyx_L1_error)
34697 __Pyx_GOTREF(__pyx_t_9);
34698 __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9);
if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 761, __pyx_L1_error)
34700 __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
34702 __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9);
if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 761, __pyx_L1_error)
34703 __pyx_t_10 = __pyx_t_12;
34704 __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
34705 goto __pyx_L9_bool_binop_done;
34708 __pyx_L9_bool_binop_done:;
34709 __pyx_v_stop = __pyx_t_10;
34718 __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step);
if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 762, __pyx_L1_error)
34719 __Pyx_GOTREF(__pyx_t_9);
34720 __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9);
if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 762, __pyx_L1_error)
34722 __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
34724 __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9);
if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 762, __pyx_L1_error)
34725 __pyx_t_10 = __pyx_t_12;
34726 __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
34727 goto __pyx_L11_bool_binop_done;
34730 __pyx_L11_bool_binop_done:;
34731 __pyx_v_step = __pyx_t_10;
34740 __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start);
if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 764, __pyx_L1_error)
34741 __Pyx_GOTREF(__pyx_t_9);
34742 __pyx_t_1 = (__pyx_t_9 != Py_None);
34743 __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
34744 __pyx_v_have_start = __pyx_t_1;
34753 __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop);
if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 765, __pyx_L1_error)
34754 __Pyx_GOTREF(__pyx_t_9);
34755 __pyx_t_1 = (__pyx_t_9 != Py_None);
34756 __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
34757 __pyx_v_have_stop = __pyx_t_1;
34766 __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step);
if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 766, __pyx_L1_error)
34767 __Pyx_GOTREF(__pyx_t_9);
34768 __pyx_t_1 = (__pyx_t_9 != Py_None);
34769 __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
34770 __pyx_v_have_step = __pyx_t_1;
34779 __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_have_start, __pyx_v_have_stop, __pyx_v_have_step, 1);
if (unlikely(__pyx_t_11 == ((
int)-1))) __PYX_ERR(2, 768, __pyx_L1_error)
34788 __pyx_v_new_ndim = (__pyx_v_new_ndim + 1);
34800 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
34809 __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type);
34810 __pyx_t_2 = (__pyx_t_1 != 0);
34820 __Pyx_XDECREF(((PyObject *)__pyx_r));
34829 if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError(
"memviewsliceobj"); __PYX_ERR(2, 778, __pyx_L1_error) }
34838 if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError(
"memviewsliceobj"); __PYX_ERR(2, 779, __pyx_L1_error) }
34847 __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, __pyx_v_memviewsliceobj->to_object_func, __pyx_v_memviewsliceobj->to_dtype_func, __pyx_v_memview->dtype_is_object);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 777, __pyx_L1_error)
34848 __Pyx_GOTREF(__pyx_t_3);
34849 if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(2, 777, __pyx_L1_error)
34850 __pyx_r = ((
struct __pyx_memoryview_obj *)__pyx_t_3);
34871 __Pyx_XDECREF(((PyObject *)__pyx_r));
34880 __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, NULL, NULL, __pyx_v_memview->dtype_is_object);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 782, __pyx_L1_error)
34881 __Pyx_GOTREF(__pyx_t_3);
34890 if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(2, 782, __pyx_L1_error)
34891 __pyx_r = ((
struct __pyx_memoryview_obj *)__pyx_t_3);
34906 __Pyx_XDECREF(__pyx_t_3);
34907 __Pyx_XDECREF(__pyx_t_9);
34908 __Pyx_AddTraceback(
"View.MemoryView.memview_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
34911 __Pyx_XDECREF((PyObject *)__pyx_v_memviewsliceobj);
34912 __Pyx_XDECREF(__pyx_v_index);
34913 __Pyx_XGIVEREF((PyObject *)__pyx_r);
34914 __Pyx_RefNannyFinishContext();
34926 static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *__pyx_v_dst, Py_ssize_t __pyx_v_shape, Py_ssize_t __pyx_v_stride, Py_ssize_t __pyx_v_suboffset,
int __pyx_v_dim,
int __pyx_v_new_ndim,
int *__pyx_v_suboffset_dim, Py_ssize_t __pyx_v_start, Py_ssize_t __pyx_v_stop, Py_ssize_t __pyx_v_step,
int __pyx_v_have_start,
int __pyx_v_have_stop,
int __pyx_v_have_step,
int __pyx_v_is_slice) {
34927 Py_ssize_t __pyx_v_new_shape;
34928 int __pyx_v_negative_step;
34941 __pyx_t_1 = ((!(__pyx_v_is_slice != 0)) != 0);
34951 __pyx_t_1 = ((__pyx_v_start < 0) != 0);
34961 __pyx_v_start = (__pyx_v_start + __pyx_v_shape);
34979 __pyx_t_1 = (0 <= __pyx_v_start);
34981 __pyx_t_1 = (__pyx_v_start < __pyx_v_shape);
34983 __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
34993 __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((
char *)
"Index out of bounds (axis %d)"), __pyx_v_dim);
if (unlikely(__pyx_t_3 == ((
int)-1))) __PYX_ERR(2, 832, __pyx_L1_error)
35022 __pyx_t_1 = ((__pyx_v_have_step != 0) != 0);
35025 __pyx_t_2 = __pyx_t_1;
35026 goto __pyx_L6_bool_binop_done;
35028 __pyx_t_1 = ((__pyx_v_step < 0) != 0);
35029 __pyx_t_2 = __pyx_t_1;
35030 __pyx_L6_bool_binop_done:;
35031 __pyx_v_negative_step = __pyx_t_2;
35040 __pyx_t_1 = (__pyx_v_have_step != 0);
35043 __pyx_t_2 = __pyx_t_1;
35044 goto __pyx_L9_bool_binop_done;
35046 __pyx_t_1 = ((__pyx_v_step == 0) != 0);
35047 __pyx_t_2 = __pyx_t_1;
35048 __pyx_L9_bool_binop_done:;
35058 __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((
char *)
"Step may not be zero (axis %d)"), __pyx_v_dim);
if (unlikely(__pyx_t_3 == ((
int)-1))) __PYX_ERR(2, 838, __pyx_L1_error)
35076 __pyx_t_2 = (__pyx_v_have_start != 0);
35086 __pyx_t_2 = ((__pyx_v_start < 0) != 0);
35096 __pyx_v_start = (__pyx_v_start + __pyx_v_shape);
35105 __pyx_t_2 = ((__pyx_v_start < 0) != 0);
35143 __pyx_t_2 = ((__pyx_v_start >= __pyx_v_shape) != 0);
35153 __pyx_t_2 = (__pyx_v_negative_step != 0);
35163 __pyx_v_start = (__pyx_v_shape - 1);
35183 __pyx_v_start = __pyx_v_shape;
35215 __pyx_t_2 = (__pyx_v_negative_step != 0);
35225 __pyx_v_start = (__pyx_v_shape - 1);
35258 __pyx_t_2 = (__pyx_v_have_stop != 0);
35268 __pyx_t_2 = ((__pyx_v_stop < 0) != 0);
35278 __pyx_v_stop = (__pyx_v_stop + __pyx_v_shape);
35287 __pyx_t_2 = ((__pyx_v_stop < 0) != 0);
35325 __pyx_t_2 = ((__pyx_v_stop > __pyx_v_shape) != 0);
35335 __pyx_v_stop = __pyx_v_shape;
35365 __pyx_t_2 = (__pyx_v_negative_step != 0);
35375 __pyx_v_stop = -1
L;
35395 __pyx_v_stop = __pyx_v_shape;
35408 __pyx_t_2 = ((!(__pyx_v_have_step != 0)) != 0);
35436 __pyx_v_new_shape = ((__pyx_v_stop - __pyx_v_start) / __pyx_v_step);
35445 __pyx_t_2 = (((__pyx_v_stop - __pyx_v_start) - (__pyx_v_step * __pyx_v_new_shape)) != 0);
35455 __pyx_v_new_shape = (__pyx_v_new_shape + 1);
35473 __pyx_t_2 = ((__pyx_v_new_shape < 0) != 0);
35483 __pyx_v_new_shape = 0;
35501 (__pyx_v_dst->strides[__pyx_v_new_ndim]) = (__pyx_v_stride * __pyx_v_step);
35510 (__pyx_v_dst->shape[__pyx_v_new_ndim]) = __pyx_v_new_shape;
35519 (__pyx_v_dst->suboffsets[__pyx_v_new_ndim]) = __pyx_v_suboffset;
35530 __pyx_t_2 = (((__pyx_v_suboffset_dim[0]) < 0) != 0);
35540 __pyx_v_dst->data = (__pyx_v_dst->data + (__pyx_v_start * __pyx_v_stride));
35560 __pyx_t_3 = (__pyx_v_suboffset_dim[0]);
35561 (__pyx_v_dst->suboffsets[__pyx_t_3]) = ((__pyx_v_dst->suboffsets[__pyx_t_3]) + (__pyx_v_start * __pyx_v_stride));
35572 __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0);
35582 __pyx_t_2 = ((!(__pyx_v_is_slice != 0)) != 0);
35592 __pyx_t_2 = ((__pyx_v_new_ndim == 0) != 0);
35602 __pyx_v_dst->data = ((((
char **)__pyx_v_dst->data)[0]) + __pyx_v_suboffset);
35630 __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((
char *)
"All dimensions preceding dimension %d must be indexed and not sliced"), __pyx_v_dim);
if (unlikely(__pyx_t_3 == ((
int)-1))) __PYX_ERR(2, 899, __pyx_L1_error)
35652 (__pyx_v_suboffset_dim[0]) = __pyx_v_new_ndim;
35687 PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
35689 __Pyx_AddTraceback(
"View.MemoryView.slice_memviewslice", __pyx_clineno, __pyx_lineno, __pyx_filename);
35691 __Pyx_PyGILState_Release(__pyx_gilstate_save);
35707 static char *__pyx_pybuffer_index(Py_buffer *__pyx_v_view,
char *__pyx_v_bufp, Py_ssize_t __pyx_v_index, Py_ssize_t __pyx_v_dim) {
35708 Py_ssize_t __pyx_v_shape;
35709 Py_ssize_t __pyx_v_stride;
35710 Py_ssize_t __pyx_v_suboffset;
35711 Py_ssize_t __pyx_v_itemsize;
35712 char *__pyx_v_resultp;
35714 __Pyx_RefNannyDeclarations
35715 Py_ssize_t __pyx_t_1;
35717 PyObject *__pyx_t_3 = NULL;
35718 PyObject *__pyx_t_4 = NULL;
35719 __Pyx_RefNannySetupContext(
"pybuffer_index", 0);
35728 __pyx_v_suboffset = -1
L;
35737 __pyx_t_1 = __pyx_v_view->itemsize;
35738 __pyx_v_itemsize = __pyx_t_1;
35747 __pyx_t_2 = ((__pyx_v_view->ndim == 0) != 0);
35757 if (unlikely(__pyx_v_itemsize == 0)) {
35758 PyErr_SetString(PyExc_ZeroDivisionError,
"integer division or modulo by zero");
35759 __PYX_ERR(2, 917, __pyx_L1_error)
35761 else if (
sizeof(Py_ssize_t) ==
sizeof(
long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_view->len))) {
35762 PyErr_SetString(PyExc_OverflowError,
"value too large to perform division");
35763 __PYX_ERR(2, 917, __pyx_L1_error)
35765 __pyx_v_shape = (__pyx_v_view->len / __pyx_v_itemsize);
35774 __pyx_v_stride = __pyx_v_itemsize;
35794 __pyx_v_shape = (__pyx_v_view->shape[__pyx_v_dim]);
35803 __pyx_v_stride = (__pyx_v_view->strides[__pyx_v_dim]);
35812 __pyx_t_2 = ((__pyx_v_view->suboffsets != NULL) != 0);
35822 __pyx_v_suboffset = (__pyx_v_view->suboffsets[__pyx_v_dim]);
35842 __pyx_t_2 = ((__pyx_v_index < 0) != 0);
35852 __pyx_v_index = (__pyx_v_index + (__pyx_v_view->shape[__pyx_v_dim]));
35861 __pyx_t_2 = ((__pyx_v_index < 0) != 0);
35862 if (unlikely(__pyx_t_2)) {
35871 __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 928, __pyx_L1_error)
35872 __Pyx_GOTREF(__pyx_t_3);
35873 __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 928, __pyx_L1_error)
35874 __Pyx_GOTREF(__pyx_t_4);
35875 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
35876 __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 928, __pyx_L1_error)
35877 __Pyx_GOTREF(__pyx_t_3);
35878 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
35879 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
35880 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
35881 __PYX_ERR(2, 928, __pyx_L1_error)
35908 __pyx_t_2 = ((__pyx_v_index >= __pyx_v_shape) != 0);
35909 if (unlikely(__pyx_t_2)) {
35918 __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 931, __pyx_L1_error)
35919 __Pyx_GOTREF(__pyx_t_3);
35920 __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 931, __pyx_L1_error)
35921 __Pyx_GOTREF(__pyx_t_4);
35922 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
35923 __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 931, __pyx_L1_error)
35924 __Pyx_GOTREF(__pyx_t_3);
35925 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
35926 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
35927 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
35928 __PYX_ERR(2, 931, __pyx_L1_error)
35946 __pyx_v_resultp = (__pyx_v_bufp + (__pyx_v_index * __pyx_v_stride));
35955 __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0);
35965 __pyx_v_resultp = ((((
char **)__pyx_v_resultp)[0]) + __pyx_v_suboffset);
35983 __pyx_r = __pyx_v_resultp;
35996 __Pyx_XDECREF(__pyx_t_3);
35997 __Pyx_XDECREF(__pyx_t_4);
35998 __Pyx_AddTraceback(
"View.MemoryView.pybuffer_index", __pyx_clineno, __pyx_lineno, __pyx_filename);
36001 __Pyx_RefNannyFinishContext();
36013 static int __pyx_memslice_transpose(__Pyx_memviewslice *__pyx_v_memslice) {
36015 Py_ssize_t *__pyx_v_shape;
36016 Py_ssize_t *__pyx_v_strides;
36021 Py_ssize_t *__pyx_t_2;
36024 Py_ssize_t __pyx_t_5;
36025 Py_ssize_t __pyx_t_6;
36037 __pyx_t_1 = __pyx_v_memslice->memview->view.ndim;
36038 __pyx_v_ndim = __pyx_t_1;
36047 __pyx_t_2 = __pyx_v_memslice->shape;
36048 __pyx_v_shape = __pyx_t_2;
36057 __pyx_t_2 = __pyx_v_memslice->strides;
36058 __pyx_v_strides = __pyx_t_2;
36067 __pyx_t_3 = (__pyx_v_ndim / 2);
36068 __pyx_t_4 = __pyx_t_3;
36069 for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_4; __pyx_t_1+=1) {
36070 __pyx_v_i = __pyx_t_1;
36079 __pyx_v_j = ((__pyx_v_ndim - 1) - __pyx_v_i);
36088 __pyx_t_5 = (__pyx_v_strides[__pyx_v_j]);
36089 __pyx_t_6 = (__pyx_v_strides[__pyx_v_i]);
36090 (__pyx_v_strides[__pyx_v_i]) = __pyx_t_5;
36091 (__pyx_v_strides[__pyx_v_j]) = __pyx_t_6;
36100 __pyx_t_6 = (__pyx_v_shape[__pyx_v_j]);
36101 __pyx_t_5 = (__pyx_v_shape[__pyx_v_i]);
36102 (__pyx_v_shape[__pyx_v_i]) = __pyx_t_6;
36103 (__pyx_v_shape[__pyx_v_j]) = __pyx_t_5;
36112 __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_i]) >= 0) != 0);
36115 __pyx_t_7 = __pyx_t_8;
36116 goto __pyx_L6_bool_binop_done;
36118 __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_j]) >= 0) != 0);
36119 __pyx_t_7 = __pyx_t_8;
36120 __pyx_L6_bool_binop_done:;
36130 __pyx_t_9 = __pyx_memoryview_err(__pyx_builtin_ValueError, ((
char *)
"Cannot transpose memoryview with indirect dimensions"));
if (unlikely(__pyx_t_9 == ((
int)-1))) __PYX_ERR(2, 957, __pyx_L1_error)
36164 PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
36166 __Pyx_AddTraceback(
"View.MemoryView.transpose_memslice", __pyx_clineno, __pyx_lineno, __pyx_filename);
36168 __Pyx_PyGILState_Release(__pyx_gilstate_save);
36185 static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self);
36186 static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self) {
36187 __Pyx_RefNannyDeclarations
36188 __Pyx_RefNannySetupContext(
"__dealloc__ (wrapper)", 0);
36189 __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(((
struct __pyx_memoryviewslice_obj *)__pyx_v_self));
36192 __Pyx_RefNannyFinishContext();
36195 static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(
struct __pyx_memoryviewslice_obj *__pyx_v_self) {
36196 __Pyx_RefNannyDeclarations
36197 __Pyx_RefNannySetupContext(
"__dealloc__", 0);
36206 __PYX_XDEC_MEMVIEW((&__pyx_v_self->from_slice), 1);
36217 __Pyx_RefNannyFinishContext();
36228 static PyObject *__pyx_memoryviewslice_convert_item_to_object(
struct __pyx_memoryviewslice_obj *__pyx_v_self,
char *__pyx_v_itemp) {
36229 PyObject *__pyx_r = NULL;
36230 __Pyx_RefNannyDeclarations
36232 PyObject *__pyx_t_2 = NULL;
36233 __Pyx_RefNannySetupContext(
"convert_item_to_object", 0);
36242 __pyx_t_1 = ((__pyx_v_self->to_object_func != NULL) != 0);
36252 __Pyx_XDECREF(__pyx_r);
36253 __pyx_t_2 = __pyx_v_self->to_object_func(__pyx_v_itemp);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 981, __pyx_L1_error)
36254 __Pyx_GOTREF(__pyx_t_2);
36255 __pyx_r = __pyx_t_2;
36276 __Pyx_XDECREF(__pyx_r);
36277 __pyx_t_2 = __pyx_memoryview_convert_item_to_object(((
struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 983, __pyx_L1_error)
36278 __Pyx_GOTREF(__pyx_t_2);
36279 __pyx_r = __pyx_t_2;
36294 __Pyx_XDECREF(__pyx_t_2);
36295 __Pyx_AddTraceback(
"View.MemoryView._memoryviewslice.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
36298 __Pyx_XGIVEREF(__pyx_r);
36299 __Pyx_RefNannyFinishContext();
36311 static PyObject *__pyx_memoryviewslice_assign_item_from_object(
struct __pyx_memoryviewslice_obj *__pyx_v_self,
char *__pyx_v_itemp, PyObject *__pyx_v_value) {
36312 PyObject *__pyx_r = NULL;
36313 __Pyx_RefNannyDeclarations
36316 PyObject *__pyx_t_3 = NULL;
36317 __Pyx_RefNannySetupContext(
"assign_item_from_object", 0);
36326 __pyx_t_1 = ((__pyx_v_self->to_dtype_func != NULL) != 0);
36336 __pyx_t_2 = __pyx_v_self->to_dtype_func(__pyx_v_itemp, __pyx_v_value);
if (unlikely(__pyx_t_2 == ((
int)0))) __PYX_ERR(2, 987, __pyx_L1_error)
36356 __pyx_t_3 = __pyx_memoryview_assign_item_from_object(((
struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp, __pyx_v_value);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 989, __pyx_L1_error)
36357 __Pyx_GOTREF(__pyx_t_3);
36358 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
36371 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
36374 __Pyx_XDECREF(__pyx_t_3);
36375 __Pyx_AddTraceback(
"View.MemoryView._memoryviewslice.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
36378 __Pyx_XGIVEREF(__pyx_r);
36379 __Pyx_RefNannyFinishContext();
36392 static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self);
36393 static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self) {
36394 PyObject *__pyx_r = 0;
36395 __Pyx_RefNannyDeclarations
36396 __Pyx_RefNannySetupContext(
"__get__ (wrapper)", 0);
36397 __pyx_r = __pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(((
struct __pyx_memoryviewslice_obj *)__pyx_v_self));
36400 __Pyx_RefNannyFinishContext();
36404 static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(
struct __pyx_memoryviewslice_obj *__pyx_v_self) {
36405 PyObject *__pyx_r = NULL;
36406 __Pyx_RefNannyDeclarations
36407 __Pyx_RefNannySetupContext(
"__get__", 0);
36416 __Pyx_XDECREF(__pyx_r);
36417 __Pyx_INCREF(__pyx_v_self->from_object);
36418 __pyx_r = __pyx_v_self->from_object;
36431 __Pyx_XGIVEREF(__pyx_r);
36432 __Pyx_RefNannyFinishContext();
36443 static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused);
36444 static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
36445 PyObject *__pyx_r = 0;
36446 __Pyx_RefNannyDeclarations
36447 __Pyx_RefNannySetupContext(
"__reduce_cython__ (wrapper)", 0);
36448 __pyx_r = __pyx_pf___pyx_memoryviewslice___reduce_cython__(((
struct __pyx_memoryviewslice_obj *)__pyx_v_self));
36451 __Pyx_RefNannyFinishContext();
36455 static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED
struct __pyx_memoryviewslice_obj *__pyx_v_self) {
36456 PyObject *__pyx_r = NULL;
36457 __Pyx_RefNannyDeclarations
36458 PyObject *__pyx_t_1 = NULL;
36459 __Pyx_RefNannySetupContext(
"__reduce_cython__", 0);
36467 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__29, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2, __pyx_L1_error)
36468 __Pyx_GOTREF(__pyx_t_1);
36469 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
36470 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36471 __PYX_ERR(2, 2, __pyx_L1_error)
36481 __Pyx_XDECREF(__pyx_t_1);
36482 __Pyx_AddTraceback(
"View.MemoryView._memoryviewslice.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36484 __Pyx_XGIVEREF(__pyx_r);
36485 __Pyx_RefNannyFinishContext();
36497 static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state);
36498 static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
36499 PyObject *__pyx_r = 0;
36500 __Pyx_RefNannyDeclarations
36501 __Pyx_RefNannySetupContext(
"__setstate_cython__ (wrapper)", 0);
36502 __pyx_r = __pyx_pf___pyx_memoryviewslice_2__setstate_cython__(((
struct __pyx_memoryviewslice_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));
36505 __Pyx_RefNannyFinishContext();
36509 static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED
struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
36510 PyObject *__pyx_r = NULL;
36511 __Pyx_RefNannyDeclarations
36512 PyObject *__pyx_t_1 = NULL;
36513 __Pyx_RefNannySetupContext(
"__setstate_cython__", 0);
36520 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__30, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error)
36521 __Pyx_GOTREF(__pyx_t_1);
36522 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
36523 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
36524 __PYX_ERR(2, 4, __pyx_L1_error)
36535 __Pyx_XDECREF(__pyx_t_1);
36536 __Pyx_AddTraceback(
"View.MemoryView._memoryviewslice.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
36538 __Pyx_XGIVEREF(__pyx_r);
36539 __Pyx_RefNannyFinishContext();
36551 static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice __pyx_v_memviewslice,
int __pyx_v_ndim, PyObject *(*__pyx_v_to_object_func)(
char *),
int (*__pyx_v_to_dtype_func)(
char *, PyObject *),
int __pyx_v_dtype_is_object) {
36552 struct __pyx_memoryviewslice_obj *__pyx_v_result = 0;
36553 Py_ssize_t __pyx_v_suboffset;
36554 PyObject *__pyx_v_length = NULL;
36555 PyObject *__pyx_r = NULL;
36556 __Pyx_RefNannyDeclarations
36558 PyObject *__pyx_t_2 = NULL;
36559 PyObject *__pyx_t_3 = NULL;
36560 __Pyx_TypeInfo *__pyx_t_4;
36561 Py_buffer __pyx_t_5;
36562 Py_ssize_t *__pyx_t_6;
36563 Py_ssize_t *__pyx_t_7;
36564 Py_ssize_t *__pyx_t_8;
36565 Py_ssize_t __pyx_t_9;
36566 __Pyx_RefNannySetupContext(
"memoryview_fromslice", 0);
36575 __pyx_t_1 = ((((PyObject *)__pyx_v_memviewslice.memview) == Py_None) != 0);
36585 __Pyx_XDECREF(__pyx_r);
36586 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
36605 __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1013, __pyx_L1_error)
36606 __Pyx_GOTREF(__pyx_t_2);
36607 __pyx_t_3 = PyTuple_New(3);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1013, __pyx_L1_error)
36608 __Pyx_GOTREF(__pyx_t_3);
36609 __Pyx_INCREF(Py_None);
36610 __Pyx_GIVEREF(Py_None);
36611 PyTuple_SET_ITEM(__pyx_t_3, 0, Py_None);
36612 __Pyx_INCREF(__pyx_int_0);
36613 __Pyx_GIVEREF(__pyx_int_0);
36614 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0);
36615 __Pyx_GIVEREF(__pyx_t_2);
36616 PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2);
36618 __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryviewslice_type), __pyx_t_3, NULL);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1013, __pyx_L1_error)
36619 __Pyx_GOTREF(__pyx_t_2);
36620 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
36621 __pyx_v_result = ((
struct __pyx_memoryviewslice_obj *)__pyx_t_2);
36631 __pyx_v_result->from_slice = __pyx_v_memviewslice;
36640 __PYX_INC_MEMVIEW((&__pyx_v_memviewslice), 1);
36649 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_memviewslice.memview), __pyx_n_s_base);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1018, __pyx_L1_error)
36650 __Pyx_GOTREF(__pyx_t_2);
36651 __Pyx_GIVEREF(__pyx_t_2);
36652 __Pyx_GOTREF(__pyx_v_result->from_object);
36653 __Pyx_DECREF(__pyx_v_result->from_object);
36654 __pyx_v_result->from_object = __pyx_t_2;
36664 __pyx_t_4 = __pyx_v_memviewslice.memview->typeinfo;
36665 __pyx_v_result->__pyx_base.typeinfo = __pyx_t_4;
36674 __pyx_t_5 = __pyx_v_memviewslice.memview->view;
36675 __pyx_v_result->__pyx_base.view = __pyx_t_5;
36684 __pyx_v_result->__pyx_base.view.buf = ((
void *)__pyx_v_memviewslice.data);
36693 __pyx_v_result->__pyx_base.view.ndim = __pyx_v_ndim;
36702 ((Py_buffer *)(&__pyx_v_result->__pyx_base.view))->obj = Py_None;
36711 Py_INCREF(Py_None);
36720 __pyx_t_1 = ((((
struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)->flags & PyBUF_WRITABLE) != 0);
36730 __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS;
36750 __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS_RO;
36761 __pyx_v_result->__pyx_base.view.shape = ((Py_ssize_t *)__pyx_v_result->from_slice.shape);
36770 __pyx_v_result->__pyx_base.view.strides = ((Py_ssize_t *)__pyx_v_result->from_slice.strides);
36779 __pyx_v_result->__pyx_base.view.suboffsets = NULL;
36788 __pyx_t_7 = (__pyx_v_result->from_slice.suboffsets + __pyx_v_ndim);
36789 for (__pyx_t_8 = __pyx_v_result->from_slice.suboffsets; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) {
36790 __pyx_t_6 = __pyx_t_8;
36791 __pyx_v_suboffset = (__pyx_t_6[0]);
36800 __pyx_t_1 = ((__pyx_v_suboffset >= 0) != 0);
36810 __pyx_v_result->__pyx_base.view.suboffsets = ((Py_ssize_t *)__pyx_v_result->from_slice.suboffsets);
36819 goto __pyx_L6_break;
36839 __pyx_t_9 = __pyx_v_result->__pyx_base.view.itemsize;
36840 __pyx_v_result->__pyx_base.view.len = __pyx_t_9;
36849 __pyx_t_7 = (__pyx_v_result->__pyx_base.view.shape + __pyx_v_ndim);
36850 for (__pyx_t_8 = __pyx_v_result->__pyx_base.view.shape; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) {
36851 __pyx_t_6 = __pyx_t_8;
36852 __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_6[0]));
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1043, __pyx_L1_error)
36853 __Pyx_GOTREF(__pyx_t_2);
36854 __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_2);
36864 __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_result->__pyx_base.view.len);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1044, __pyx_L1_error)
36865 __Pyx_GOTREF(__pyx_t_2);
36866 __pyx_t_3 = PyNumber_InPlaceMultiply(__pyx_t_2, __pyx_v_length);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1044, __pyx_L1_error)
36867 __Pyx_GOTREF(__pyx_t_3);
36868 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
36869 __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3);
if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 1044, __pyx_L1_error)
36870 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
36871 __pyx_v_result->__pyx_base.view.len = __pyx_t_9;
36881 __pyx_v_result->to_object_func = __pyx_v_to_object_func;
36890 __pyx_v_result->to_dtype_func = __pyx_v_to_dtype_func;
36899 __Pyx_XDECREF(__pyx_r);
36900 __Pyx_INCREF(((PyObject *)__pyx_v_result));
36901 __pyx_r = ((PyObject *)__pyx_v_result);
36914 __Pyx_XDECREF(__pyx_t_2);
36915 __Pyx_XDECREF(__pyx_t_3);
36916 __Pyx_AddTraceback(
"View.MemoryView.memoryview_fromslice", __pyx_clineno, __pyx_lineno, __pyx_filename);
36919 __Pyx_XDECREF((PyObject *)__pyx_v_result);
36920 __Pyx_XDECREF(__pyx_v_length);
36921 __Pyx_XGIVEREF(__pyx_r);
36922 __Pyx_RefNannyFinishContext();
36934 static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(
struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_mslice) {
36935 struct __pyx_memoryviewslice_obj *__pyx_v_obj = 0;
36936 __Pyx_memviewslice *__pyx_r;
36937 __Pyx_RefNannyDeclarations
36940 PyObject *__pyx_t_3 = NULL;
36941 __Pyx_RefNannySetupContext(
"get_slice_from_memview", 0);
36950 __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type);
36951 __pyx_t_2 = (__pyx_t_1 != 0);
36961 if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(2, 1056, __pyx_L1_error)
36962 __pyx_t_3 = ((PyObject *)__pyx_v_memview);
36963 __Pyx_INCREF(__pyx_t_3);
36964 __pyx_v_obj = ((
struct __pyx_memoryviewslice_obj *)__pyx_t_3);
36974 __pyx_r = (&__pyx_v_obj->from_slice);
36994 __pyx_memoryview_slice_copy(__pyx_v_memview, __pyx_v_mslice);
37003 __pyx_r = __pyx_v_mslice;
37017 __Pyx_XDECREF(__pyx_t_3);
37018 __Pyx_AddTraceback(
"View.MemoryView.get_slice_from_memview", __pyx_clineno, __pyx_lineno, __pyx_filename);
37021 __Pyx_XDECREF((PyObject *)__pyx_v_obj);
37022 __Pyx_RefNannyFinishContext();
37034 static void __pyx_memoryview_slice_copy(
struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_dst) {
37036 Py_ssize_t *__pyx_v_shape;
37037 Py_ssize_t *__pyx_v_strides;
37038 Py_ssize_t *__pyx_v_suboffsets;
37039 __Pyx_RefNannyDeclarations
37040 Py_ssize_t *__pyx_t_1;
37044 Py_ssize_t __pyx_t_5;
37045 __Pyx_RefNannySetupContext(
"slice_copy", 0);
37054 __pyx_t_1 = __pyx_v_memview->view.shape;
37055 __pyx_v_shape = __pyx_t_1;
37064 __pyx_t_1 = __pyx_v_memview->view.strides;
37065 __pyx_v_strides = __pyx_t_1;
37074 __pyx_t_1 = __pyx_v_memview->view.suboffsets;
37075 __pyx_v_suboffsets = __pyx_t_1;
37084 __pyx_v_dst->memview = ((
struct __pyx_memoryview_obj *)__pyx_v_memview);
37093 __pyx_v_dst->data = ((
char *)__pyx_v_memview->view.buf);
37102 __pyx_t_2 = __pyx_v_memview->view.ndim;
37103 __pyx_t_3 = __pyx_t_2;
37104 for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
37105 __pyx_v_dim = __pyx_t_4;
37114 (__pyx_v_dst->shape[__pyx_v_dim]) = (__pyx_v_shape[__pyx_v_dim]);
37123 (__pyx_v_dst->strides[__pyx_v_dim]) = (__pyx_v_strides[__pyx_v_dim]);
37132 if ((__pyx_v_suboffsets != 0)) {
37133 __pyx_t_5 = (__pyx_v_suboffsets[__pyx_v_dim]);
37137 (__pyx_v_dst->suboffsets[__pyx_v_dim]) = __pyx_t_5;
37149 __Pyx_RefNannyFinishContext();
37160 static PyObject *__pyx_memoryview_copy_object(
struct __pyx_memoryview_obj *__pyx_v_memview) {
37161 __Pyx_memviewslice __pyx_v_memviewslice;
37162 PyObject *__pyx_r = NULL;
37163 __Pyx_RefNannyDeclarations
37164 PyObject *__pyx_t_1 = NULL;
37165 __Pyx_RefNannySetupContext(
"memoryview_copy", 0);
37174 __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_memviewslice));
37183 __Pyx_XDECREF(__pyx_r);
37184 __pyx_t_1 = __pyx_memoryview_copy_object_from_slice(__pyx_v_memview, (&__pyx_v_memviewslice));
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1084, __pyx_L1_error)
37185 __Pyx_GOTREF(__pyx_t_1);
37186 __pyx_r = __pyx_t_1;
37200 __Pyx_XDECREF(__pyx_t_1);
37201 __Pyx_AddTraceback(
"View.MemoryView.memoryview_copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
37204 __Pyx_XGIVEREF(__pyx_r);
37205 __Pyx_RefNannyFinishContext();
37217 static PyObject *__pyx_memoryview_copy_object_from_slice(
struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_memviewslice) {
37218 PyObject *(*__pyx_v_to_object_func)(
char *);
37219 int (*__pyx_v_to_dtype_func)(
char *, PyObject *);
37220 PyObject *__pyx_r = NULL;
37221 __Pyx_RefNannyDeclarations
37224 PyObject *(*__pyx_t_3)(
char *);
37225 int (*__pyx_t_4)(
char *, PyObject *);
37226 PyObject *__pyx_t_5 = NULL;
37227 __Pyx_RefNannySetupContext(
"memoryview_copy_from_slice", 0);
37236 __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type);
37237 __pyx_t_2 = (__pyx_t_1 != 0);
37247 __pyx_t_3 = ((
struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_object_func;
37248 __pyx_v_to_object_func = __pyx_t_3;
37257 __pyx_t_4 = ((
struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_dtype_func;
37258 __pyx_v_to_dtype_func = __pyx_t_4;
37278 __pyx_v_to_object_func = NULL;
37287 __pyx_v_to_dtype_func = NULL;
37298 __Pyx_XDECREF(__pyx_r);
37307 __pyx_t_5 = __pyx_memoryview_fromslice((__pyx_v_memviewslice[0]), __pyx_v_memview->view.ndim, __pyx_v_to_object_func, __pyx_v_to_dtype_func, __pyx_v_memview->dtype_is_object);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1101, __pyx_L1_error)
37308 __Pyx_GOTREF(__pyx_t_5);
37309 __pyx_r = __pyx_t_5;
37323 __Pyx_XDECREF(__pyx_t_5);
37324 __Pyx_AddTraceback(
"View.MemoryView.memoryview_copy_from_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
37327 __Pyx_XGIVEREF(__pyx_r);
37328 __Pyx_RefNannyFinishContext();
37340 static Py_ssize_t abs_py_ssize_t(Py_ssize_t __pyx_v_arg) {
37341 Py_ssize_t __pyx_r;
37351 __pyx_t_1 = ((__pyx_v_arg < 0) != 0);
37361 __pyx_r = (-__pyx_v_arg);
37381 __pyx_r = __pyx_v_arg;
37406 static char __pyx_get_best_slice_order(__Pyx_memviewslice *__pyx_v_mslice,
int __pyx_v_ndim) {
37408 Py_ssize_t __pyx_v_c_stride;
37409 Py_ssize_t __pyx_v_f_stride;
37423 __pyx_v_c_stride = 0;
37432 __pyx_v_f_stride = 0;
37441 for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) {
37442 __pyx_v_i = __pyx_t_1;
37451 __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0);
37461 __pyx_v_c_stride = (__pyx_v_mslice->strides[__pyx_v_i]);
37470 goto __pyx_L4_break;
37490 __pyx_t_1 = __pyx_v_ndim;
37491 __pyx_t_3 = __pyx_t_1;
37492 for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
37493 __pyx_v_i = __pyx_t_4;
37502 __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0);
37512 __pyx_v_f_stride = (__pyx_v_mslice->strides[__pyx_v_i]);
37521 goto __pyx_L7_break;
37541 __pyx_t_2 = ((abs_py_ssize_t(__pyx_v_c_stride) <= abs_py_ssize_t(__pyx_v_f_stride)) != 0);
37596 static void _copy_strided_to_strided(
char *__pyx_v_src_data, Py_ssize_t *__pyx_v_src_strides,
char *__pyx_v_dst_data, Py_ssize_t *__pyx_v_dst_strides, Py_ssize_t *__pyx_v_src_shape, Py_ssize_t *__pyx_v_dst_shape,
int __pyx_v_ndim,
size_t __pyx_v_itemsize) {
37597 CYTHON_UNUSED Py_ssize_t __pyx_v_i;
37598 CYTHON_UNUSED Py_ssize_t __pyx_v_src_extent;
37599 Py_ssize_t __pyx_v_dst_extent;
37600 Py_ssize_t __pyx_v_src_stride;
37601 Py_ssize_t __pyx_v_dst_stride;
37605 Py_ssize_t __pyx_t_4;
37606 Py_ssize_t __pyx_t_5;
37607 Py_ssize_t __pyx_t_6;
37616 __pyx_v_src_extent = (__pyx_v_src_shape[0]);
37625 __pyx_v_dst_extent = (__pyx_v_dst_shape[0]);
37634 __pyx_v_src_stride = (__pyx_v_src_strides[0]);
37643 __pyx_v_dst_stride = (__pyx_v_dst_strides[0]);
37652 __pyx_t_1 = ((__pyx_v_ndim == 1) != 0);
37662 __pyx_t_2 = ((__pyx_v_src_stride > 0) != 0);
37665 __pyx_t_1 = __pyx_t_2;
37666 goto __pyx_L5_bool_binop_done;
37668 __pyx_t_2 = ((__pyx_v_dst_stride > 0) != 0);
37671 __pyx_t_1 = __pyx_t_2;
37672 goto __pyx_L5_bool_binop_done;
37682 __pyx_t_2 = (((size_t)__pyx_v_src_stride) == __pyx_v_itemsize);
37684 __pyx_t_2 = (__pyx_v_itemsize == ((size_t)__pyx_v_dst_stride));
37686 __pyx_t_3 = (__pyx_t_2 != 0);
37687 __pyx_t_1 = __pyx_t_3;
37688 __pyx_L5_bool_binop_done:;
37706 (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, (__pyx_v_itemsize * __pyx_v_dst_extent)));
37726 __pyx_t_4 = __pyx_v_dst_extent;
37727 __pyx_t_5 = __pyx_t_4;
37728 for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
37729 __pyx_v_i = __pyx_t_6;
37738 (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, __pyx_v_itemsize));
37747 __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride);
37756 __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride);
37779 __pyx_t_4 = __pyx_v_dst_extent;
37780 __pyx_t_5 = __pyx_t_4;
37781 for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
37782 __pyx_v_i = __pyx_t_6;
37791 _copy_strided_to_strided(__pyx_v_src_data, (__pyx_v_src_strides + 1), __pyx_v_dst_data, (__pyx_v_dst_strides + 1), (__pyx_v_src_shape + 1), (__pyx_v_dst_shape + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize);
37800 __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride);
37809 __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride);
37833 static void copy_strided_to_strided(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_dst,
int __pyx_v_ndim,
size_t __pyx_v_itemsize) {
37842 _copy_strided_to_strided(__pyx_v_src->data, __pyx_v_src->strides, __pyx_v_dst->data, __pyx_v_dst->strides, __pyx_v_src->shape, __pyx_v_dst->shape, __pyx_v_ndim, __pyx_v_itemsize);
37863 static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *__pyx_v_src,
int __pyx_v_ndim) {
37864 Py_ssize_t __pyx_v_shape;
37865 Py_ssize_t __pyx_v_size;
37866 Py_ssize_t __pyx_r;
37867 Py_ssize_t __pyx_t_1;
37868 Py_ssize_t *__pyx_t_2;
37869 Py_ssize_t *__pyx_t_3;
37870 Py_ssize_t *__pyx_t_4;
37879 __pyx_t_1 = __pyx_v_src->memview->view.itemsize;
37880 __pyx_v_size = __pyx_t_1;
37889 __pyx_t_3 = (__pyx_v_src->shape + __pyx_v_ndim);
37890 for (__pyx_t_4 = __pyx_v_src->shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) {
37891 __pyx_t_2 = __pyx_t_4;
37892 __pyx_v_shape = (__pyx_t_2[0]);
37901 __pyx_v_size = (__pyx_v_size * __pyx_v_shape);
37911 __pyx_r = __pyx_v_size;
37935 static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, Py_ssize_t __pyx_v_stride,
int __pyx_v_ndim,
char __pyx_v_order) {
37937 Py_ssize_t __pyx_r;
37950 __pyx_t_1 = ((__pyx_v_order ==
'F') != 0);
37960 __pyx_t_2 = __pyx_v_ndim;
37961 __pyx_t_3 = __pyx_t_2;
37962 for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
37963 __pyx_v_idx = __pyx_t_4;
37972 (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride;
37981 __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx]));
38002 for (__pyx_t_2 = (__pyx_v_ndim - 1); __pyx_t_2 > -1; __pyx_t_2-=1) {
38003 __pyx_v_idx = __pyx_t_2;
38012 (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride;
38021 __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx]));
38033 __pyx_r = __pyx_v_stride;
38057 static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_tmpslice,
char __pyx_v_order,
int __pyx_v_ndim) {
38059 void *__pyx_v_result;
38060 size_t __pyx_v_itemsize;
38061 size_t __pyx_v_size;
38063 Py_ssize_t __pyx_t_1;
38066 struct __pyx_memoryview_obj *__pyx_t_4;
38077 __pyx_t_1 = __pyx_v_src->memview->view.itemsize;
38078 __pyx_v_itemsize = __pyx_t_1;
38087 __pyx_v_size = __pyx_memoryview_slice_get_size(__pyx_v_src, __pyx_v_ndim);
38096 __pyx_v_result = malloc(__pyx_v_size);
38105 __pyx_t_2 = ((!(__pyx_v_result != 0)) != 0);
38115 __pyx_t_3 = __pyx_memoryview_err(__pyx_builtin_MemoryError, NULL);
if (unlikely(__pyx_t_3 == ((
int)-1))) __PYX_ERR(2, 1224, __pyx_L1_error)
38133 __pyx_v_tmpslice->data = ((
char *)__pyx_v_result);
38142 __pyx_t_4 = __pyx_v_src->memview;
38143 __pyx_v_tmpslice->memview = __pyx_t_4;
38152 __pyx_t_3 = __pyx_v_ndim;
38153 __pyx_t_5 = __pyx_t_3;
38154 for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
38155 __pyx_v_i = __pyx_t_6;
38164 (__pyx_v_tmpslice->shape[__pyx_v_i]) = (__pyx_v_src->shape[__pyx_v_i]);
38173 (__pyx_v_tmpslice->suboffsets[__pyx_v_i]) = -1
L;
38183 (void)(__pyx_fill_contig_strides_array((&(__pyx_v_tmpslice->shape[0])), (&(__pyx_v_tmpslice->strides[0])), __pyx_v_itemsize, __pyx_v_ndim, __pyx_v_order));
38192 __pyx_t_3 = __pyx_v_ndim;
38193 __pyx_t_5 = __pyx_t_3;
38194 for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
38195 __pyx_v_i = __pyx_t_6;
38204 __pyx_t_2 = (((__pyx_v_tmpslice->shape[__pyx_v_i]) == 1) != 0);
38214 (__pyx_v_tmpslice->strides[__pyx_v_i]) = 0;
38233 __pyx_t_2 = (__pyx_memviewslice_is_contig((__pyx_v_src[0]), __pyx_v_order, __pyx_v_ndim) != 0);
38243 (void)(memcpy(__pyx_v_result, __pyx_v_src->data, __pyx_v_size));
38263 copy_strided_to_strided(__pyx_v_src, __pyx_v_tmpslice, __pyx_v_ndim, __pyx_v_itemsize);
38274 __pyx_r = __pyx_v_result;
38289 PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
38291 __Pyx_AddTraceback(
"View.MemoryView.copy_data_to_temp", __pyx_clineno, __pyx_lineno, __pyx_filename);
38293 __Pyx_PyGILState_Release(__pyx_gilstate_save);
38309 static int __pyx_memoryview_err_extents(
int __pyx_v_i, Py_ssize_t __pyx_v_extent1, Py_ssize_t __pyx_v_extent2) {
38311 __Pyx_RefNannyDeclarations
38312 PyObject *__pyx_t_1 = NULL;
38313 PyObject *__pyx_t_2 = NULL;
38314 PyObject *__pyx_t_3 = NULL;
38315 PyObject *__pyx_t_4 = NULL;
38317 PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
38319 __Pyx_RefNannySetupContext(
"_err_extents", 0);
38328 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_i);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1254, __pyx_L1_error)
38329 __Pyx_GOTREF(__pyx_t_1);
38330 __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_extent1);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1254, __pyx_L1_error)
38331 __Pyx_GOTREF(__pyx_t_2);
38332 __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_extent2);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1254, __pyx_L1_error)
38333 __Pyx_GOTREF(__pyx_t_3);
38334 __pyx_t_4 = PyTuple_New(3);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1254, __pyx_L1_error)
38335 __Pyx_GOTREF(__pyx_t_4);
38336 __Pyx_GIVEREF(__pyx_t_1);
38337 PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
38338 __Pyx_GIVEREF(__pyx_t_2);
38339 PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
38340 __Pyx_GIVEREF(__pyx_t_3);
38341 PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
38353 __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_t_4);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1253, __pyx_L1_error)
38354 __Pyx_GOTREF(__pyx_t_3);
38355 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
38356 __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1253, __pyx_L1_error)
38357 __Pyx_GOTREF(__pyx_t_4);
38358 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
38359 __Pyx_Raise(__pyx_t_4, 0, 0, 0);
38360 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
38361 __PYX_ERR(2, 1253, __pyx_L1_error)
38373 __Pyx_XDECREF(__pyx_t_1);
38374 __Pyx_XDECREF(__pyx_t_2);
38375 __Pyx_XDECREF(__pyx_t_3);
38376 __Pyx_XDECREF(__pyx_t_4);
38377 __Pyx_AddTraceback(
"View.MemoryView._err_extents", __pyx_clineno, __pyx_lineno, __pyx_filename);
38379 __Pyx_RefNannyFinishContext();
38381 __Pyx_PyGILState_Release(__pyx_gilstate_save);
38394 static int __pyx_memoryview_err_dim(PyObject *__pyx_v_error,
char *__pyx_v_msg,
int __pyx_v_dim) {
38396 __Pyx_RefNannyDeclarations
38397 PyObject *__pyx_t_1 = NULL;
38398 PyObject *__pyx_t_2 = NULL;
38399 PyObject *__pyx_t_3 = NULL;
38400 PyObject *__pyx_t_4 = NULL;
38402 PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
38404 __Pyx_RefNannySetupContext(
"_err_dim", 0);
38405 __Pyx_INCREF(__pyx_v_error);
38414 __pyx_t_2 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1258, __pyx_L1_error)
38415 __Pyx_GOTREF(__pyx_t_2);
38416 __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_dim);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1258, __pyx_L1_error)
38417 __Pyx_GOTREF(__pyx_t_3);
38418 __pyx_t_4 = PyUnicode_Format(__pyx_t_2, __pyx_t_3);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1258, __pyx_L1_error)
38419 __Pyx_GOTREF(__pyx_t_4);
38420 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
38421 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
38422 __Pyx_INCREF(__pyx_v_error);
38423 __pyx_t_3 = __pyx_v_error; __pyx_t_2 = NULL;
38424 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
38425 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
38426 if (likely(__pyx_t_2)) {
38427 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_3);
38428 __Pyx_INCREF(__pyx_t_2);
38429 __Pyx_INCREF(
function);
38430 __Pyx_DECREF_SET(__pyx_t_3,
function);
38433 __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
38434 __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
38435 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
38436 if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1258, __pyx_L1_error)
38437 __Pyx_GOTREF(__pyx_t_1);
38438 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
38439 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
38440 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
38441 __PYX_ERR(2, 1258, __pyx_L1_error)
38453 __Pyx_XDECREF(__pyx_t_1);
38454 __Pyx_XDECREF(__pyx_t_2);
38455 __Pyx_XDECREF(__pyx_t_3);
38456 __Pyx_XDECREF(__pyx_t_4);
38457 __Pyx_AddTraceback(
"View.MemoryView._err_dim", __pyx_clineno, __pyx_lineno, __pyx_filename);
38459 __Pyx_XDECREF(__pyx_v_error);
38460 __Pyx_RefNannyFinishContext();
38462 __Pyx_PyGILState_Release(__pyx_gilstate_save);
38475 static int __pyx_memoryview_err(PyObject *__pyx_v_error,
char *__pyx_v_msg) {
38477 __Pyx_RefNannyDeclarations
38479 PyObject *__pyx_t_2 = NULL;
38480 PyObject *__pyx_t_3 = NULL;
38481 PyObject *__pyx_t_4 = NULL;
38482 PyObject *__pyx_t_5 = NULL;
38484 PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
38486 __Pyx_RefNannySetupContext(
"_err", 0);
38487 __Pyx_INCREF(__pyx_v_error);
38496 __pyx_t_1 = ((__pyx_v_msg != NULL) != 0);
38497 if (unlikely(__pyx_t_1)) {
38506 __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1263, __pyx_L1_error)
38507 __Pyx_GOTREF(__pyx_t_3);
38508 __Pyx_INCREF(__pyx_v_error);
38509 __pyx_t_4 = __pyx_v_error; __pyx_t_5 = NULL;
38510 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
38511 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
38512 if (likely(__pyx_t_5)) {
38513 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_4);
38514 __Pyx_INCREF(__pyx_t_5);
38515 __Pyx_INCREF(
function);
38516 __Pyx_DECREF_SET(__pyx_t_4,
function);
38519 __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3);
38520 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
38521 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
38522 if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1263, __pyx_L1_error)
38523 __Pyx_GOTREF(__pyx_t_2);
38524 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
38525 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
38526 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
38527 __PYX_ERR(2, 1263, __pyx_L1_error)
38546 __Pyx_Raise(__pyx_v_error, 0, 0, 0);
38547 __PYX_ERR(2, 1265, __pyx_L1_error)
38560 __Pyx_XDECREF(__pyx_t_2);
38561 __Pyx_XDECREF(__pyx_t_3);
38562 __Pyx_XDECREF(__pyx_t_4);
38563 __Pyx_XDECREF(__pyx_t_5);
38564 __Pyx_AddTraceback(
"View.MemoryView._err", __pyx_clineno, __pyx_lineno, __pyx_filename);
38566 __Pyx_XDECREF(__pyx_v_error);
38567 __Pyx_RefNannyFinishContext();
38569 __Pyx_PyGILState_Release(__pyx_gilstate_save);
38582 static int __pyx_memoryview_copy_contents(__Pyx_memviewslice __pyx_v_src, __Pyx_memviewslice __pyx_v_dst,
int __pyx_v_src_ndim,
int __pyx_v_dst_ndim,
int __pyx_v_dtype_is_object) {
38583 void *__pyx_v_tmpdata;
38584 size_t __pyx_v_itemsize;
38586 char __pyx_v_order;
38587 int __pyx_v_broadcasting;
38588 int __pyx_v_direct_copy;
38589 __Pyx_memviewslice __pyx_v_tmp;
38592 Py_ssize_t __pyx_t_1;
38608 __pyx_v_tmpdata = NULL;
38617 __pyx_t_1 = __pyx_v_src.memview->view.itemsize;
38618 __pyx_v_itemsize = __pyx_t_1;
38627 __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_src), __pyx_v_src_ndim);
38636 __pyx_v_broadcasting = 0;
38645 __pyx_v_direct_copy = 0;
38654 __pyx_t_2 = ((__pyx_v_src_ndim < __pyx_v_dst_ndim) != 0);
38664 __pyx_memoryview_broadcast_leading((&__pyx_v_src), __pyx_v_src_ndim, __pyx_v_dst_ndim);
38683 __pyx_t_2 = ((__pyx_v_dst_ndim < __pyx_v_src_ndim) != 0);
38693 __pyx_memoryview_broadcast_leading((&__pyx_v_dst), __pyx_v_dst_ndim, __pyx_v_src_ndim);
38712 __pyx_t_3 = __pyx_v_dst_ndim;
38713 __pyx_t_4 = __pyx_v_src_ndim;
38714 if (((__pyx_t_3 > __pyx_t_4) != 0)) {
38715 __pyx_t_5 = __pyx_t_3;
38717 __pyx_t_5 = __pyx_t_4;
38719 __pyx_v_ndim = __pyx_t_5;
38728 __pyx_t_5 = __pyx_v_ndim;
38729 __pyx_t_3 = __pyx_t_5;
38730 for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
38731 __pyx_v_i = __pyx_t_4;
38740 __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) != (__pyx_v_dst.shape[__pyx_v_i])) != 0);
38750 __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) == 1) != 0);
38760 __pyx_v_broadcasting = 1;
38769 (__pyx_v_src.strides[__pyx_v_i]) = 0;
38789 __pyx_t_6 = __pyx_memoryview_err_extents(__pyx_v_i, (__pyx_v_dst.shape[__pyx_v_i]), (__pyx_v_src.shape[__pyx_v_i]));
if (unlikely(__pyx_t_6 == ((
int)-1))) __PYX_ERR(2, 1297, __pyx_L1_error)
38809 __pyx_t_2 = (((__pyx_v_src.suboffsets[__pyx_v_i]) >= 0) != 0);
38819 __pyx_t_6 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((
char *)
"Dimension %d is not direct"), __pyx_v_i);
if (unlikely(__pyx_t_6 == ((
int)-1))) __PYX_ERR(2, 1300, __pyx_L1_error)
38838 __pyx_t_2 = (__pyx_slices_overlap((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize) != 0);
38848 __pyx_t_2 = ((!(__pyx_memviewslice_is_contig(__pyx_v_src, __pyx_v_order, __pyx_v_ndim) != 0)) != 0);
38858 __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim);
38876 __pyx_t_7 = __pyx_memoryview_copy_data_to_temp((&__pyx_v_src), (&__pyx_v_tmp), __pyx_v_order, __pyx_v_ndim);
if (unlikely(__pyx_t_7 == ((
void *)NULL))) __PYX_ERR(2, 1307, __pyx_L1_error)
38877 __pyx_v_tmpdata = __pyx_t_7;
38886 __pyx_v_src = __pyx_v_tmp;
38904 __pyx_t_2 = ((!(__pyx_v_broadcasting != 0)) != 0);
38914 __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src,
'C', __pyx_v_ndim) != 0);
38924 __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst,
'C', __pyx_v_ndim);
38943 __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src,
'F', __pyx_v_ndim) != 0);
38953 __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst,
'F', __pyx_v_ndim);
38972 __pyx_t_2 = (__pyx_v_direct_copy != 0);
38982 __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0);
38991 (void)(memcpy(__pyx_v_dst.data, __pyx_v_src.data, __pyx_memoryview_slice_get_size((&__pyx_v_src), __pyx_v_ndim)));
39000 __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1);
39009 free(__pyx_v_tmpdata);
39046 __pyx_t_2 = (__pyx_v_order ==
'F');
39048 __pyx_t_2 = (
'F' == __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim));
39050 __pyx_t_8 = (__pyx_t_2 != 0);
39060 __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_src));
if (unlikely(__pyx_t_5 == ((
int)0))) __PYX_ERR(2, 1329, __pyx_L1_error)
39069 __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_dst));
if (unlikely(__pyx_t_5 == ((
int)0))) __PYX_ERR(2, 1330, __pyx_L1_error)
39087 __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0);
39096 copy_strided_to_strided((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize);
39105 __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1);
39114 free(__pyx_v_tmpdata);
39138 PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
39140 __Pyx_AddTraceback(
"View.MemoryView.memoryview_copy_contents", __pyx_clineno, __pyx_lineno, __pyx_filename);
39142 __Pyx_PyGILState_Release(__pyx_gilstate_save);
39158 static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *__pyx_v_mslice,
int __pyx_v_ndim,
int __pyx_v_ndim_other) {
39160 int __pyx_v_offset;
39172 __pyx_v_offset = (__pyx_v_ndim_other - __pyx_v_ndim);
39181 for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) {
39182 __pyx_v_i = __pyx_t_1;
39191 (__pyx_v_mslice->shape[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->shape[__pyx_v_i]);
39200 (__pyx_v_mslice->strides[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->strides[__pyx_v_i]);
39209 (__pyx_v_mslice->suboffsets[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->suboffsets[__pyx_v_i]);
39219 __pyx_t_1 = __pyx_v_offset;
39220 __pyx_t_2 = __pyx_t_1;
39221 for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
39222 __pyx_v_i = __pyx_t_3;
39231 (__pyx_v_mslice->shape[__pyx_v_i]) = 1;
39240 (__pyx_v_mslice->strides[__pyx_v_i]) = (__pyx_v_mslice->strides[0]);
39249 (__pyx_v_mslice->suboffsets[__pyx_v_i]) = -1
L;
39271 static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *__pyx_v_dst,
int __pyx_v_dtype_is_object,
int __pyx_v_ndim,
int __pyx_v_inc) {
39281 __pyx_t_1 = (__pyx_v_dtype_is_object != 0);
39291 __pyx_memoryview_refcount_objects_in_slice_with_gil(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_inc);
39321 static void __pyx_memoryview_refcount_objects_in_slice_with_gil(
char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides,
int __pyx_v_ndim,
int __pyx_v_inc) {
39322 __Pyx_RefNannyDeclarations
39324 PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
39326 __Pyx_RefNannySetupContext(
"refcount_objects_in_slice_with_gil", 0);
39335 __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, __pyx_v_shape, __pyx_v_strides, __pyx_v_ndim, __pyx_v_inc);
39346 __Pyx_RefNannyFinishContext();
39348 __Pyx_PyGILState_Release(__pyx_gilstate_save);
39360 static void __pyx_memoryview_refcount_objects_in_slice(
char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides,
int __pyx_v_ndim,
int __pyx_v_inc) {
39361 CYTHON_UNUSED Py_ssize_t __pyx_v_i;
39362 __Pyx_RefNannyDeclarations
39363 Py_ssize_t __pyx_t_1;
39364 Py_ssize_t __pyx_t_2;
39365 Py_ssize_t __pyx_t_3;
39367 __Pyx_RefNannySetupContext(
"refcount_objects_in_slice", 0);
39376 __pyx_t_1 = (__pyx_v_shape[0]);
39377 __pyx_t_2 = __pyx_t_1;
39378 for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
39379 __pyx_v_i = __pyx_t_3;
39388 __pyx_t_4 = ((__pyx_v_ndim == 1) != 0);
39398 __pyx_t_4 = (__pyx_v_inc != 0);
39408 Py_INCREF((((PyObject **)__pyx_v_data)[0]));
39428 Py_DECREF((((PyObject **)__pyx_v_data)[0]));
39458 __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_inc);
39469 __pyx_v_data = (__pyx_v_data + (__pyx_v_strides[0]));
39481 __Pyx_RefNannyFinishContext();
39492 static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *__pyx_v_dst,
int __pyx_v_ndim,
size_t __pyx_v_itemsize,
void *__pyx_v_item,
int __pyx_v_dtype_is_object) {
39501 __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 0);
39510 __pyx_memoryview__slice_assign_scalar(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_itemsize, __pyx_v_item);
39519 __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 1);
39540 static void __pyx_memoryview__slice_assign_scalar(
char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides,
int __pyx_v_ndim,
size_t __pyx_v_itemsize,
void *__pyx_v_item) {
39541 CYTHON_UNUSED Py_ssize_t __pyx_v_i;
39542 Py_ssize_t __pyx_v_stride;
39543 Py_ssize_t __pyx_v_extent;
39545 Py_ssize_t __pyx_t_2;
39546 Py_ssize_t __pyx_t_3;
39547 Py_ssize_t __pyx_t_4;
39556 __pyx_v_stride = (__pyx_v_strides[0]);
39565 __pyx_v_extent = (__pyx_v_shape[0]);
39574 __pyx_t_1 = ((__pyx_v_ndim == 1) != 0);
39584 __pyx_t_2 = __pyx_v_extent;
39585 __pyx_t_3 = __pyx_t_2;
39586 for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
39587 __pyx_v_i = __pyx_t_4;
39596 (void)(memcpy(__pyx_v_data, __pyx_v_item, __pyx_v_itemsize));
39605 __pyx_v_data = (__pyx_v_data + __pyx_v_stride);
39626 __pyx_t_2 = __pyx_v_extent;
39627 __pyx_t_3 = __pyx_t_2;
39628 for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
39629 __pyx_v_i = __pyx_t_4;
39638 __pyx_memoryview__slice_assign_scalar(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize, __pyx_v_item);
39647 __pyx_v_data = (__pyx_v_data + __pyx_v_stride);
39670 static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds);
39671 static PyMethodDef __pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum = {
"__pyx_unpickle_Enum", (PyCFunction)(
void*)(PyCFunctionWithKeywords)__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum, METH_VARARGS|METH_KEYWORDS, 0};
39672 static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
39673 PyObject *__pyx_v___pyx_type = 0;
39674 long __pyx_v___pyx_checksum;
39675 PyObject *__pyx_v___pyx_state = 0;
39676 PyObject *__pyx_r = 0;
39677 __Pyx_RefNannyDeclarations
39678 __Pyx_RefNannySetupContext(
"__pyx_unpickle_Enum (wrapper)", 0);
39680 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
39681 PyObject* values[3] = {0,0,0};
39682 if (unlikely(__pyx_kwds)) {
39683 Py_ssize_t kw_args;
39684 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
39685 switch (pos_args) {
39686 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
39687 CYTHON_FALLTHROUGH;
39688 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
39689 CYTHON_FALLTHROUGH;
39690 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
39691 CYTHON_FALLTHROUGH;
39693 default:
goto __pyx_L5_argtuple_error;
39695 kw_args = PyDict_Size(__pyx_kwds);
39696 switch (pos_args) {
39698 if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--;
39699 else goto __pyx_L5_argtuple_error;
39700 CYTHON_FALLTHROUGH;
39702 if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--;
39704 __Pyx_RaiseArgtupleInvalid(
"__pyx_unpickle_Enum", 1, 3, 3, 1); __PYX_ERR(2, 1, __pyx_L3_error)
39706 CYTHON_FALLTHROUGH;
39708 if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
39710 __Pyx_RaiseArgtupleInvalid(
"__pyx_unpickle_Enum", 1, 3, 3, 2); __PYX_ERR(2, 1, __pyx_L3_error)
39713 if (unlikely(kw_args > 0)) {
39714 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args,
"__pyx_unpickle_Enum") < 0)) __PYX_ERR(2, 1, __pyx_L3_error)
39716 }
else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
39717 goto __pyx_L5_argtuple_error;
39719 values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
39720 values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
39721 values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
39723 __pyx_v___pyx_type = values[0];
39724 __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]);
if (unlikely((__pyx_v___pyx_checksum == (
long)-1) && PyErr_Occurred())) __PYX_ERR(2, 1, __pyx_L3_error)
39725 __pyx_v___pyx_state = values[2];
39727 goto __pyx_L4_argument_unpacking_done;
39728 __pyx_L5_argtuple_error:;
39729 __Pyx_RaiseArgtupleInvalid(
"__pyx_unpickle_Enum", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1, __pyx_L3_error)
39731 __Pyx_AddTraceback(
"View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename);
39732 __Pyx_RefNannyFinishContext();
39734 __pyx_L4_argument_unpacking_done:;
39735 __pyx_r = __pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);
39738 __Pyx_RefNannyFinishContext();
39742 static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type,
long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
39743 PyObject *__pyx_v___pyx_PickleError = 0;
39744 PyObject *__pyx_v___pyx_result = 0;
39745 PyObject *__pyx_r = NULL;
39746 __Pyx_RefNannyDeclarations
39748 PyObject *__pyx_t_2 = NULL;
39749 PyObject *__pyx_t_3 = NULL;
39750 PyObject *__pyx_t_4 = NULL;
39751 PyObject *__pyx_t_5 = NULL;
39753 __Pyx_RefNannySetupContext(
"__pyx_unpickle_Enum", 0);
39762 __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xb068931) != 0);
39772 __pyx_t_2 = PyList_New(1);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error)
39773 __Pyx_GOTREF(__pyx_t_2);
39774 __Pyx_INCREF(__pyx_n_s_PickleError);
39775 __Pyx_GIVEREF(__pyx_n_s_PickleError);
39776 PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
39777 __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5, __pyx_L1_error)
39778 __Pyx_GOTREF(__pyx_t_3);
39779 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39780 __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error)
39781 __Pyx_GOTREF(__pyx_t_2);
39782 __Pyx_INCREF(__pyx_t_2);
39783 __pyx_v___pyx_PickleError = __pyx_t_2;
39784 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39785 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39794 __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 6, __pyx_L1_error)
39795 __Pyx_GOTREF(__pyx_t_2);
39796 __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xb0, __pyx_t_2);
if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 6, __pyx_L1_error)
39797 __Pyx_GOTREF(__pyx_t_4);
39798 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39799 __Pyx_INCREF(__pyx_v___pyx_PickleError);
39800 __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
39801 if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
39802 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
39803 if (likely(__pyx_t_5)) {
39804 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_2);
39805 __Pyx_INCREF(__pyx_t_5);
39806 __Pyx_INCREF(
function);
39807 __Pyx_DECREF_SET(__pyx_t_2,
function);
39810 __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
39811 __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
39812 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
39813 if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 6, __pyx_L1_error)
39814 __Pyx_GOTREF(__pyx_t_3);
39815 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39816 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
39817 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39818 __PYX_ERR(2, 6, __pyx_L1_error)
39836 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_MemviewEnum_type), __pyx_n_s_new);
if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 7, __pyx_L1_error)
39837 __Pyx_GOTREF(__pyx_t_2);
39839 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
39840 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
39841 if (likely(__pyx_t_4)) {
39842 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_2);
39843 __Pyx_INCREF(__pyx_t_4);
39844 __Pyx_INCREF(
function);
39845 __Pyx_DECREF_SET(__pyx_t_2,
function);
39848 __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
39849 __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
39850 if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 7, __pyx_L1_error)
39851 __Pyx_GOTREF(__pyx_t_3);
39852 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
39853 __pyx_v___pyx_result = __pyx_t_3;
39863 __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
39864 __pyx_t_6 = (__pyx_t_1 != 0);
39874 if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError,
"Expected %.16s, got %.200s",
"tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(2, 9, __pyx_L1_error)
39875 __pyx_t_3 = __pyx_unpickle_Enum__set_state(((
struct __pyx_MemviewEnum_obj *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state));
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 9, __pyx_L1_error)
39876 __Pyx_GOTREF(__pyx_t_3);
39877 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
39895 __Pyx_XDECREF(__pyx_r);
39896 __Pyx_INCREF(__pyx_v___pyx_result);
39897 __pyx_r = __pyx_v___pyx_result;
39908 __Pyx_XDECREF(__pyx_t_2);
39909 __Pyx_XDECREF(__pyx_t_3);
39910 __Pyx_XDECREF(__pyx_t_4);
39911 __Pyx_XDECREF(__pyx_t_5);
39912 __Pyx_AddTraceback(
"View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename);
39915 __Pyx_XDECREF(__pyx_v___pyx_PickleError);
39916 __Pyx_XDECREF(__pyx_v___pyx_result);
39917 __Pyx_XGIVEREF(__pyx_r);
39918 __Pyx_RefNannyFinishContext();
39930 static PyObject *__pyx_unpickle_Enum__set_state(
struct __pyx_MemviewEnum_obj *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
39931 PyObject *__pyx_r = NULL;
39932 __Pyx_RefNannyDeclarations
39933 PyObject *__pyx_t_1 = NULL;
39935 Py_ssize_t __pyx_t_3;
39938 PyObject *__pyx_t_6 = NULL;
39939 PyObject *__pyx_t_7 = NULL;
39940 PyObject *__pyx_t_8 = NULL;
39941 __Pyx_RefNannySetupContext(
"__pyx_unpickle_Enum__set_state", 0);
39950 if (unlikely(__pyx_v___pyx_state == Py_None)) {
39951 PyErr_SetString(PyExc_TypeError,
"'NoneType' object is not subscriptable");
39952 __PYX_ERR(2, 12, __pyx_L1_error)
39954 __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0,
long, 1, __Pyx_PyInt_From_long, 0, 0, 0);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error)
39955 __Pyx_GOTREF(__pyx_t_1);
39956 __Pyx_GIVEREF(__pyx_t_1);
39957 __Pyx_GOTREF(__pyx_v___pyx_result->name);
39958 __Pyx_DECREF(__pyx_v___pyx_result->name);
39959 __pyx_v___pyx_result->name = __pyx_t_1;
39968 if (unlikely(__pyx_v___pyx_state == Py_None)) {
39969 PyErr_SetString(PyExc_TypeError,
"object of type 'NoneType' has no len()");
39970 __PYX_ERR(2, 13, __pyx_L1_error)
39972 __pyx_t_3 = PyTuple_GET_SIZE(__pyx_v___pyx_state);
if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(2, 13, __pyx_L1_error)
39973 __pyx_t_4 = ((__pyx_t_3 > 1) != 0);
39976 __pyx_t_2 = __pyx_t_4;
39977 goto __pyx_L4_bool_binop_done;
39979 __pyx_t_4 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict);
if (unlikely(__pyx_t_4 == ((
int)-1))) __PYX_ERR(2, 13, __pyx_L1_error)
39980 __pyx_t_5 = (__pyx_t_4 != 0);
39981 __pyx_t_2 = __pyx_t_5;
39982 __pyx_L4_bool_binop_done:;
39990 __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict);
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 14, __pyx_L1_error)
39991 __Pyx_GOTREF(__pyx_t_6);
39992 __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update);
if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 14, __pyx_L1_error)
39993 __Pyx_GOTREF(__pyx_t_7);
39994 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
39995 if (unlikely(__pyx_v___pyx_state == Py_None)) {
39996 PyErr_SetString(PyExc_TypeError,
"'NoneType' object is not subscriptable");
39997 __PYX_ERR(2, 14, __pyx_L1_error)
39999 __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1,
long, 1, __Pyx_PyInt_From_long, 0, 0, 0);
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 14, __pyx_L1_error)
40000 __Pyx_GOTREF(__pyx_t_6);
40002 if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
40003 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
40004 if (likely(__pyx_t_8)) {
40005 PyObject*
function = PyMethod_GET_FUNCTION(__pyx_t_7);
40006 __Pyx_INCREF(__pyx_t_8);
40007 __Pyx_INCREF(
function);
40008 __Pyx_DECREF_SET(__pyx_t_7,
function);
40011 __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6);
40012 __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
40013 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
40014 if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 14, __pyx_L1_error)
40015 __Pyx_GOTREF(__pyx_t_1);
40016 __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
40017 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
40036 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
40039 __Pyx_XDECREF(__pyx_t_1);
40040 __Pyx_XDECREF(__pyx_t_6);
40041 __Pyx_XDECREF(__pyx_t_7);
40042 __Pyx_XDECREF(__pyx_t_8);
40043 __Pyx_AddTraceback(
"View.MemoryView.__pyx_unpickle_Enum__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
40046 __Pyx_XGIVEREF(__pyx_r);
40047 __Pyx_RefNannyFinishContext();
40059 static PyObject *__pyx_format_from_typeinfo(__Pyx_TypeInfo *__pyx_v_type) {
40060 __Pyx_StructField *__pyx_v_field;
40061 struct __pyx_typeinfo_string __pyx_v_fmt;
40062 PyObject *__pyx_v_part = 0;
40063 PyObject *__pyx_v_result = 0;
40064 PyObject *__pyx_v_alignment = NULL;
40065 PyObject *__pyx_v_parts = NULL;
40066 PyObject *__pyx_v_extents = NULL;
40068 PyObject *__pyx_r = NULL;
40069 __Pyx_RefNannyDeclarations
40072 PyObject *__pyx_t_3 = NULL;
40073 __Pyx_StructField *__pyx_t_4;
40074 PyObject *__pyx_t_5 = NULL;
40075 PyObject *__pyx_t_6 = NULL;
40080 __Pyx_RefNannySetupContext(
"format_from_typeinfo", 0);
40089 __pyx_t_1 = ((__pyx_v_type->typegroup ==
'S') != 0);
40099 #ifndef CYTHON_WITHOUT_ASSERTIONS 40100 if (unlikely(!Py_OptimizeFlag)) {
40101 __pyx_t_2 = ((__pyx_v_type->fields != NULL) != 0);
40104 __pyx_t_1 = __pyx_t_2;
40105 goto __pyx_L4_bool_binop_done;
40107 __pyx_t_2 = ((__pyx_v_type->fields->type != NULL) != 0);
40108 __pyx_t_1 = __pyx_t_2;
40109 __pyx_L4_bool_binop_done:;
40110 if (unlikely(!__pyx_t_1)) {
40111 PyErr_SetNone(PyExc_AssertionError);
40112 __PYX_ERR(2, 1469, __pyx_L1_error)
40124 __pyx_t_1 = ((__pyx_v_type->flags & __PYX_BUF_FLAGS_PACKED_STRUCT) != 0);
40134 __Pyx_INCREF(__pyx_kp_b__31);
40135 __pyx_v_alignment = __pyx_kp_b__31;
40155 __Pyx_INCREF(__pyx_kp_b__32);
40156 __pyx_v_alignment = __pyx_kp_b__32;
40167 __pyx_t_3 = PyList_New(1);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1476, __pyx_L1_error)
40168 __Pyx_GOTREF(__pyx_t_3);
40169 __Pyx_INCREF(__pyx_kp_b_T);
40170 __Pyx_GIVEREF(__pyx_kp_b_T);
40171 PyList_SET_ITEM(__pyx_t_3, 0, __pyx_kp_b_T);
40172 __pyx_v_parts = ((PyObject*)__pyx_t_3);
40182 __pyx_t_4 = __pyx_v_type->fields;
40183 __pyx_v_field = __pyx_t_4;
40193 __pyx_t_1 = (__pyx_v_field->type != 0);
40194 if (!__pyx_t_1)
break;
40203 __pyx_t_3 = __pyx_format_from_typeinfo(__pyx_v_field->type);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1480, __pyx_L1_error)
40204 __Pyx_GOTREF(__pyx_t_3);
40205 __Pyx_XDECREF_SET(__pyx_v_part, ((PyObject*)__pyx_t_3));
40215 __pyx_t_3 = PyNumber_Add(__pyx_v_part, __pyx_kp_b__33);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1481, __pyx_L1_error)
40216 __Pyx_GOTREF(__pyx_t_3);
40217 __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_field->name);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1481, __pyx_L1_error)
40218 __Pyx_GOTREF(__pyx_t_5);
40219 __pyx_t_6 = PyNumber_Add(__pyx_t_3, __pyx_t_5);
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1481, __pyx_L1_error)
40220 __Pyx_GOTREF(__pyx_t_6);
40221 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
40222 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
40223 __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_kp_b__33);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1481, __pyx_L1_error)
40224 __Pyx_GOTREF(__pyx_t_5);
40225 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
40226 __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_parts, __pyx_t_5);
if (unlikely(__pyx_t_7 == ((
int)-1))) __PYX_ERR(2, 1481, __pyx_L1_error)
40227 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
40236 __pyx_v_field = (__pyx_v_field + 1);
40246 __pyx_t_5 = __Pyx_PyBytes_Join(__pyx_v_alignment, __pyx_v_parts);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1484, __pyx_L1_error)
40247 __Pyx_GOTREF(__pyx_t_5);
40248 __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_kp_b__34);
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1484, __pyx_L1_error)
40249 __Pyx_GOTREF(__pyx_t_6);
40250 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
40251 if (!(likely(PyBytes_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError,
"Expected %.16s, got %.200s",
"bytes", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(2, 1484, __pyx_L1_error)
40252 __pyx_v_result = ((PyObject*)__pyx_t_6);
40273 __pyx_v_fmt = __Pyx_TypeInfoToFormat(__pyx_v_type);
40282 __pyx_t_1 = ((__pyx_v_type->arraysize[0]) != 0);
40292 __pyx_t_6 = PyList_New(0);
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1488, __pyx_L1_error)
40293 __Pyx_GOTREF(__pyx_t_6);
40294 __pyx_t_8 = __pyx_v_type->ndim;
40295 __pyx_t_9 = __pyx_t_8;
40296 for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
40297 __pyx_v_i = __pyx_t_10;
40298 __pyx_t_5 = __Pyx_PyInt_FromSize_t((__pyx_v_type->arraysize[__pyx_v_i]));
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1488, __pyx_L1_error)
40299 __Pyx_GOTREF(__pyx_t_5);
40300 __pyx_t_3 = __Pyx_PyObject_Unicode(__pyx_t_5);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1488, __pyx_L1_error)
40301 __Pyx_GOTREF(__pyx_t_3);
40302 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
40303 if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_t_3))) __PYX_ERR(2, 1488, __pyx_L1_error)
40304 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
40306 __pyx_v_extents = ((PyObject*)__pyx_t_6);
40316 __pyx_t_6 = PyUnicode_Join(__pyx_kp_u__35, __pyx_v_extents);
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1489, __pyx_L1_error)
40317 __Pyx_GOTREF(__pyx_t_6);
40318 __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_s, __pyx_t_6);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1489, __pyx_L1_error)
40319 __Pyx_GOTREF(__pyx_t_3);
40320 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
40321 __pyx_t_6 = PyUnicode_AsASCIIString(((PyObject*)__pyx_t_3));
if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1489, __pyx_L1_error)
40322 __Pyx_GOTREF(__pyx_t_6);
40323 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
40324 __pyx_t_3 = __Pyx_PyObject_FromString(__pyx_v_fmt.string);
if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1489, __pyx_L1_error)
40325 __Pyx_GOTREF(__pyx_t_3);
40326 __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_t_3);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1489, __pyx_L1_error)
40327 __Pyx_GOTREF(__pyx_t_5);
40328 __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
40329 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
40330 if (!(likely(PyBytes_CheckExact(__pyx_t_5))||(PyErr_Format(PyExc_TypeError,
"Expected %.16s, got %.200s",
"bytes", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(2, 1489, __pyx_L1_error)
40331 __pyx_v_result = ((PyObject*)__pyx_t_5);
40352 __pyx_t_5 = __Pyx_PyObject_FromString(__pyx_v_fmt.string);
if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1491, __pyx_L1_error)
40353 __Pyx_GOTREF(__pyx_t_5);
40354 __pyx_v_result = ((PyObject*)__pyx_t_5);
40366 __Pyx_XDECREF(__pyx_r);
40367 __Pyx_INCREF(__pyx_v_result);
40368 __pyx_r = __pyx_v_result;
40381 __Pyx_XDECREF(__pyx_t_3);
40382 __Pyx_XDECREF(__pyx_t_5);
40383 __Pyx_XDECREF(__pyx_t_6);
40384 __Pyx_AddTraceback(
"BufferFormatFromTypeInfo.format_from_typeinfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
40387 __Pyx_XDECREF(__pyx_v_part);
40388 __Pyx_XDECREF(__pyx_v_result);
40389 __Pyx_XDECREF(__pyx_v_alignment);
40390 __Pyx_XDECREF(__pyx_v_parts);
40391 __Pyx_XDECREF(__pyx_v_extents);
40392 __Pyx_XGIVEREF(__pyx_r);
40393 __Pyx_RefNannyFinishContext();
40397 static struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues *__pyx_freelist_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues[8];
40398 static int __pyx_freecount_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues = 0;
40400 static PyObject *__pyx_tp_new_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
40402 if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues > 0) & (t->tp_basicsize ==
sizeof(
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues)))) {
40403 o = (PyObject*)__pyx_freelist_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues[--__pyx_freecount_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues];
40404 memset(o, 0,
sizeof(
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues));
40405 (void) PyObject_INIT(o, t);
40407 o = (*t->tp_alloc)(t, 0);
40408 if (unlikely(!o))
return 0;
40413 static void __pyx_tp_dealloc_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues(PyObject *o) {
40414 if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues < 8) & (Py_TYPE(o)->tp_basicsize ==
sizeof(
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues)))) {
40415 __pyx_freelist_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues[__pyx_freecount_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues++] = ((
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues *)o);
40417 (*Py_TYPE(o)->tp_free)(o);
40421 static PyTypeObject __pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues = {
40422 PyVarObject_HEAD_INIT(0, 0)
40423 "mprans.MeshSmoothing.__pyx_scope_struct__getNonOwnedNodeValues",
40424 sizeof(
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues),
40426 __pyx_tp_dealloc_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues,
40427 #
if PY_VERSION_HEX < 0x030800b4
40430 #
if PY_VERSION_HEX >= 0x030800b4
40435 #
if PY_MAJOR_VERSION < 3
40438 #
if PY_MAJOR_VERSION >= 3
40451 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER,
40469 __pyx_tp_new_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues,
40479 #
if PY_VERSION_HEX >= 0x030400a1
40482 #
if PY_VERSION_HEX >= 0x030800b1
40485 #
if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
40490 static struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr *__pyx_freelist_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr[8];
40491 static int __pyx_freecount_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr = 0;
40493 static PyObject *__pyx_tp_new_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
40495 if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr > 0) & (t->tp_basicsize ==
sizeof(
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr)))) {
40496 o = (PyObject*)__pyx_freelist_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr[--__pyx_freecount_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr];
40497 memset(o, 0,
sizeof(
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr));
40498 (void) PyObject_INIT(o, t);
40499 PyObject_GC_Track(o);
40501 o = (*t->tp_alloc)(t, 0);
40502 if (unlikely(!o))
return 0;
40507 static void __pyx_tp_dealloc_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr(PyObject *o) {
40508 struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr *p = (
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr *)o;
40509 PyObject_GC_UnTrack(o);
40510 Py_CLEAR(p->__pyx_outer_scope);
40511 if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr < 8) & (Py_TYPE(o)->tp_basicsize ==
sizeof(
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr)))) {
40512 __pyx_freelist_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr[__pyx_freecount_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr++] = ((
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr *)o);
40514 (*Py_TYPE(o)->tp_free)(o);
40518 static int __pyx_tp_traverse_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr(PyObject *o, visitproc
v,
void *a) {
40520 struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr *p = (
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr *)o;
40521 if (p->__pyx_outer_scope) {
40522 e = (*v)(((PyObject *)p->__pyx_outer_scope), a);
if (e)
return e;
40527 static PyTypeObject __pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr = {
40528 PyVarObject_HEAD_INIT(0, 0)
40529 "mprans.MeshSmoothing.__pyx_scope_struct_1_genexpr",
40530 sizeof(
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr),
40532 __pyx_tp_dealloc_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr,
40533 #
if PY_VERSION_HEX < 0x030800b4
40536 #
if PY_VERSION_HEX >= 0x030800b4
40541 #
if PY_MAJOR_VERSION < 3
40544 #
if PY_MAJOR_VERSION >= 3
40557 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
40559 __pyx_tp_traverse_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr,
40575 __pyx_tp_new_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr,
40585 #
if PY_VERSION_HEX >= 0x030400a1
40588 #
if PY_VERSION_HEX >= 0x030800b1
40591 #
if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
40596 static struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr *__pyx_freelist_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr[8];
40597 static int __pyx_freecount_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr = 0;
40599 static PyObject *__pyx_tp_new_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
40601 if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr > 0) & (t->tp_basicsize ==
sizeof(
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr)))) {
40602 o = (PyObject*)__pyx_freelist_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr[--__pyx_freecount_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr];
40603 memset(o, 0,
sizeof(
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr));
40604 (void) PyObject_INIT(o, t);
40605 PyObject_GC_Track(o);
40607 o = (*t->tp_alloc)(t, 0);
40608 if (unlikely(!o))
return 0;
40613 static void __pyx_tp_dealloc_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr(PyObject *o) {
40614 struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr *p = (
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr *)o;
40615 PyObject_GC_UnTrack(o);
40616 Py_CLEAR(p->__pyx_outer_scope);
40617 if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr < 8) & (Py_TYPE(o)->tp_basicsize ==
sizeof(
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr)))) {
40618 __pyx_freelist_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr[__pyx_freecount_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr++] = ((
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr *)o);
40620 (*Py_TYPE(o)->tp_free)(o);
40624 static int __pyx_tp_traverse_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr(PyObject *o, visitproc
v,
void *a) {
40626 struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr *p = (
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr *)o;
40627 if (p->__pyx_outer_scope) {
40628 e = (*v)(((PyObject *)p->__pyx_outer_scope), a);
if (e)
return e;
40633 static PyTypeObject __pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr = {
40634 PyVarObject_HEAD_INIT(0, 0)
40635 "mprans.MeshSmoothing.__pyx_scope_struct_2_genexpr",
40636 sizeof(
struct __pyx_obj_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr),
40638 __pyx_tp_dealloc_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr,
40639 #
if PY_VERSION_HEX < 0x030800b4
40642 #
if PY_VERSION_HEX >= 0x030800b4
40647 #
if PY_MAJOR_VERSION < 3
40650 #
if PY_MAJOR_VERSION >= 3
40663 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
40665 __pyx_tp_traverse_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr,
40681 __pyx_tp_new_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr,
40691 #
if PY_VERSION_HEX >= 0x030400a1
40694 #
if PY_VERSION_HEX >= 0x030800b1
40697 #
if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
40701 static struct __pyx_vtabstruct_array __pyx_vtable_array;
40703 static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k) {
40704 struct __pyx_array_obj *p;
40706 if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
40707 o = (*t->tp_alloc)(t, 0);
40709 o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
40711 if (unlikely(!o))
return 0;
40712 p = ((
struct __pyx_array_obj *)o);
40713 p->__pyx_vtab = __pyx_vtabptr_array;
40714 p->mode = ((PyObject*)Py_None); Py_INCREF(Py_None);
40715 p->_format = ((PyObject*)Py_None); Py_INCREF(Py_None);
40716 if (unlikely(__pyx_array___cinit__(o, a, k) < 0))
goto bad;
40719 Py_DECREF(o); o = 0;
40723 static void __pyx_tp_dealloc_array(PyObject *o) {
40724 struct __pyx_array_obj *p = (
struct __pyx_array_obj *)o;
40725 #if CYTHON_USE_TP_FINALIZE 40726 if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
40727 if (PyObject_CallFinalizerFromDealloc(o))
return;
40731 PyObject *etype, *eval, *etb;
40732 PyErr_Fetch(&etype, &eval, &etb);
40734 __pyx_array___dealloc__(o);
40736 PyErr_Restore(etype, eval, etb);
40739 Py_CLEAR(p->_format);
40740 (*Py_TYPE(o)->tp_free)(o);
40742 static PyObject *__pyx_sq_item_array(PyObject *o, Py_ssize_t i) {
40744 PyObject *x = PyInt_FromSsize_t(i);
if(!x)
return 0;
40745 r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
40750 static int __pyx_mp_ass_subscript_array(PyObject *o, PyObject *i, PyObject *
v) {
40752 return __pyx_array___setitem__(o, i, v);
40755 PyErr_Format(PyExc_NotImplementedError,
40756 "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name);
40761 static PyObject *__pyx_tp_getattro_array(PyObject *o, PyObject *
n) {
40762 PyObject *
v = __Pyx_PyObject_GenericGetAttr(o, n);
40763 if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) {
40765 v = __pyx_array___getattr__(o, n);
40770 static PyObject *__pyx_getprop___pyx_array_memview(PyObject *o, CYTHON_UNUSED
void *x) {
40771 return __pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(o);
40774 static PyMethodDef __pyx_methods_array[] = {
40775 {
"__getattr__", (PyCFunction)__pyx_array___getattr__, METH_O|METH_COEXIST, 0},
40776 {
"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_array_1__reduce_cython__, METH_NOARGS, 0},
40777 {
"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_array_3__setstate_cython__, METH_O, 0},
40781 static struct PyGetSetDef __pyx_getsets_array[] = {
40782 {(
char *)
"memview", __pyx_getprop___pyx_array_memview, 0, (
char *)0, 0},
40786 static PySequenceMethods __pyx_tp_as_sequence_array = {
40787 __pyx_array___len__,
40790 __pyx_sq_item_array,
40799 static PyMappingMethods __pyx_tp_as_mapping_array = {
40800 __pyx_array___len__,
40801 __pyx_array___getitem__,
40802 __pyx_mp_ass_subscript_array,
40805 static PyBufferProcs __pyx_tp_as_buffer_array = {
40806 #if PY_MAJOR_VERSION < 3 40809 #if PY_MAJOR_VERSION < 3 40812 #if PY_MAJOR_VERSION < 3 40815 #if PY_MAJOR_VERSION < 3 40818 __pyx_array_getbuffer,
40822 static PyTypeObject __pyx_type___pyx_array = {
40823 PyVarObject_HEAD_INIT(0, 0)
40824 "mprans.MeshSmoothing.array",
40825 sizeof(
struct __pyx_array_obj),
40827 __pyx_tp_dealloc_array,
40828 #
if PY_VERSION_HEX < 0x030800b4
40831 #
if PY_VERSION_HEX >= 0x030800b4
40836 #
if PY_MAJOR_VERSION < 3
40839 #
if PY_MAJOR_VERSION >= 3
40844 &__pyx_tp_as_sequence_array,
40845 &__pyx_tp_as_mapping_array,
40849 __pyx_tp_getattro_array,
40851 &__pyx_tp_as_buffer_array,
40852 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
40860 __pyx_methods_array,
40862 __pyx_getsets_array,
40870 __pyx_tp_new_array,
40880 #
if PY_VERSION_HEX >= 0x030400a1
40883 #
if PY_VERSION_HEX >= 0x030800b1
40886 #
if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
40891 static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
40892 struct __pyx_MemviewEnum_obj *p;
40894 if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
40895 o = (*t->tp_alloc)(t, 0);
40897 o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
40899 if (unlikely(!o))
return 0;
40900 p = ((
struct __pyx_MemviewEnum_obj *)o);
40901 p->name = Py_None; Py_INCREF(Py_None);
40905 static void __pyx_tp_dealloc_Enum(PyObject *o) {
40906 struct __pyx_MemviewEnum_obj *p = (
struct __pyx_MemviewEnum_obj *)o;
40907 #if CYTHON_USE_TP_FINALIZE 40908 if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
40909 if (PyObject_CallFinalizerFromDealloc(o))
return;
40912 PyObject_GC_UnTrack(o);
40914 (*Py_TYPE(o)->tp_free)(o);
40917 static int __pyx_tp_traverse_Enum(PyObject *o, visitproc
v,
void *a) {
40919 struct __pyx_MemviewEnum_obj *p = (
struct __pyx_MemviewEnum_obj *)o;
40921 e = (*v)(p->name, a);
if (e)
return e;
40926 static int __pyx_tp_clear_Enum(PyObject *o) {
40928 struct __pyx_MemviewEnum_obj *p = (
struct __pyx_MemviewEnum_obj *)o;
40929 tmp = ((PyObject*)p->name);
40930 p->name = Py_None; Py_INCREF(Py_None);
40935 static PyMethodDef __pyx_methods_Enum[] = {
40936 {
"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_1__reduce_cython__, METH_NOARGS, 0},
40937 {
"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_3__setstate_cython__, METH_O, 0},
40941 static PyTypeObject __pyx_type___pyx_MemviewEnum = {
40942 PyVarObject_HEAD_INIT(0, 0)
40943 "mprans.MeshSmoothing.Enum",
40944 sizeof(
struct __pyx_MemviewEnum_obj),
40946 __pyx_tp_dealloc_Enum,
40947 #
if PY_VERSION_HEX < 0x030800b4
40950 #
if PY_VERSION_HEX >= 0x030800b4
40955 #
if PY_MAJOR_VERSION < 3
40958 #
if PY_MAJOR_VERSION >= 3
40961 __pyx_MemviewEnum___repr__,
40971 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
40973 __pyx_tp_traverse_Enum,
40974 __pyx_tp_clear_Enum,
40979 __pyx_methods_Enum,
40987 __pyx_MemviewEnum___init__,
40999 #
if PY_VERSION_HEX >= 0x030400a1
41002 #
if PY_VERSION_HEX >= 0x030800b1
41005 #
if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
41009 static struct __pyx_vtabstruct_memoryview __pyx_vtable_memoryview;
41011 static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k) {
41012 struct __pyx_memoryview_obj *p;
41014 if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
41015 o = (*t->tp_alloc)(t, 0);
41017 o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
41019 if (unlikely(!o))
return 0;
41020 p = ((
struct __pyx_memoryview_obj *)o);
41021 p->__pyx_vtab = __pyx_vtabptr_memoryview;
41022 p->obj = Py_None; Py_INCREF(Py_None);
41023 p->_size = Py_None; Py_INCREF(Py_None);
41024 p->_array_interface = Py_None; Py_INCREF(Py_None);
41025 p->view.obj = NULL;
41026 if (unlikely(__pyx_memoryview___cinit__(o, a, k) < 0))
goto bad;
41029 Py_DECREF(o); o = 0;
41033 static void __pyx_tp_dealloc_memoryview(PyObject *o) {
41034 struct __pyx_memoryview_obj *p = (
struct __pyx_memoryview_obj *)o;
41035 #if CYTHON_USE_TP_FINALIZE 41036 if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
41037 if (PyObject_CallFinalizerFromDealloc(o))
return;
41040 PyObject_GC_UnTrack(o);
41042 PyObject *etype, *eval, *etb;
41043 PyErr_Fetch(&etype, &eval, &etb);
41045 __pyx_memoryview___dealloc__(o);
41047 PyErr_Restore(etype, eval, etb);
41050 Py_CLEAR(p->_size);
41051 Py_CLEAR(p->_array_interface);
41052 (*Py_TYPE(o)->tp_free)(o);
41055 static int __pyx_tp_traverse_memoryview(PyObject *o, visitproc
v,
void *a) {
41057 struct __pyx_memoryview_obj *p = (
struct __pyx_memoryview_obj *)o;
41059 e = (*v)(p->obj, a);
if (e)
return e;
41062 e = (*v)(p->_size, a);
if (e)
return e;
41064 if (p->_array_interface) {
41065 e = (*v)(p->_array_interface, a);
if (e)
return e;
41068 e = (*v)(p->view.obj, a);
if (e)
return e;
41073 static int __pyx_tp_clear_memoryview(PyObject *o) {
41075 struct __pyx_memoryview_obj *p = (
struct __pyx_memoryview_obj *)o;
41076 tmp = ((PyObject*)p->obj);
41077 p->obj = Py_None; Py_INCREF(Py_None);
41079 tmp = ((PyObject*)p->_size);
41080 p->_size = Py_None; Py_INCREF(Py_None);
41082 tmp = ((PyObject*)p->_array_interface);
41083 p->_array_interface = Py_None; Py_INCREF(Py_None);
41085 Py_CLEAR(p->view.obj);
41088 static PyObject *__pyx_sq_item_memoryview(PyObject *o, Py_ssize_t i) {
41090 PyObject *x = PyInt_FromSsize_t(i);
if(!x)
return 0;
41091 r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
41096 static int __pyx_mp_ass_subscript_memoryview(PyObject *o, PyObject *i, PyObject *
v) {
41098 return __pyx_memoryview___setitem__(o, i, v);
41101 PyErr_Format(PyExc_NotImplementedError,
41102 "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name);
41107 static PyObject *__pyx_getprop___pyx_memoryview_T(PyObject *o, CYTHON_UNUSED
void *x) {
41108 return __pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(o);
41111 static PyObject *__pyx_getprop___pyx_memoryview_base(PyObject *o, CYTHON_UNUSED
void *x) {
41112 return __pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(o);
41115 static PyObject *__pyx_getprop___pyx_memoryview_shape(PyObject *o, CYTHON_UNUSED
void *x) {
41116 return __pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(o);
41119 static PyObject *__pyx_getprop___pyx_memoryview_strides(PyObject *o, CYTHON_UNUSED
void *x) {
41120 return __pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(o);
41123 static PyObject *__pyx_getprop___pyx_memoryview_suboffsets(PyObject *o, CYTHON_UNUSED
void *x) {
41124 return __pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(o);
41127 static PyObject *__pyx_getprop___pyx_memoryview_ndim(PyObject *o, CYTHON_UNUSED
void *x) {
41128 return __pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(o);
41131 static PyObject *__pyx_getprop___pyx_memoryview_itemsize(PyObject *o, CYTHON_UNUSED
void *x) {
41132 return __pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(o);
41135 static PyObject *__pyx_getprop___pyx_memoryview_nbytes(PyObject *o, CYTHON_UNUSED
void *x) {
41136 return __pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(o);
41139 static PyObject *__pyx_getprop___pyx_memoryview_size(PyObject *o, CYTHON_UNUSED
void *x) {
41140 return __pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(o);
41143 static PyMethodDef __pyx_methods_memoryview[] = {
41144 {
"is_c_contig", (PyCFunction)__pyx_memoryview_is_c_contig, METH_NOARGS, 0},
41145 {
"is_f_contig", (PyCFunction)__pyx_memoryview_is_f_contig, METH_NOARGS, 0},
41146 {
"copy", (PyCFunction)__pyx_memoryview_copy, METH_NOARGS, 0},
41147 {
"copy_fortran", (PyCFunction)__pyx_memoryview_copy_fortran, METH_NOARGS, 0},
41148 {
"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_1__reduce_cython__, METH_NOARGS, 0},
41149 {
"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_3__setstate_cython__, METH_O, 0},
41153 static struct PyGetSetDef __pyx_getsets_memoryview[] = {
41154 {(
char *)
"T", __pyx_getprop___pyx_memoryview_T, 0, (
char *)0, 0},
41155 {(
char *)
"base", __pyx_getprop___pyx_memoryview_base, 0, (
char *)0, 0},
41156 {(
char *)
"shape", __pyx_getprop___pyx_memoryview_shape, 0, (
char *)0, 0},
41157 {(
char *)
"strides", __pyx_getprop___pyx_memoryview_strides, 0, (
char *)0, 0},
41158 {(
char *)
"suboffsets", __pyx_getprop___pyx_memoryview_suboffsets, 0, (
char *)0, 0},
41159 {(
char *)
"ndim", __pyx_getprop___pyx_memoryview_ndim, 0, (
char *)0, 0},
41160 {(
char *)
"itemsize", __pyx_getprop___pyx_memoryview_itemsize, 0, (
char *)0, 0},
41161 {(
char *)
"nbytes", __pyx_getprop___pyx_memoryview_nbytes, 0, (
char *)0, 0},
41162 {(
char *)
"size", __pyx_getprop___pyx_memoryview_size, 0, (
char *)0, 0},
41166 static PySequenceMethods __pyx_tp_as_sequence_memoryview = {
41167 __pyx_memoryview___len__,
41170 __pyx_sq_item_memoryview,
41179 static PyMappingMethods __pyx_tp_as_mapping_memoryview = {
41180 __pyx_memoryview___len__,
41181 __pyx_memoryview___getitem__,
41182 __pyx_mp_ass_subscript_memoryview,
41185 static PyBufferProcs __pyx_tp_as_buffer_memoryview = {
41186 #if PY_MAJOR_VERSION < 3 41189 #if PY_MAJOR_VERSION < 3 41192 #if PY_MAJOR_VERSION < 3 41195 #if PY_MAJOR_VERSION < 3 41198 __pyx_memoryview_getbuffer,
41202 static PyTypeObject __pyx_type___pyx_memoryview = {
41203 PyVarObject_HEAD_INIT(0, 0)
41204 "mprans.MeshSmoothing.memoryview",
41205 sizeof(
struct __pyx_memoryview_obj),
41207 __pyx_tp_dealloc_memoryview,
41208 #
if PY_VERSION_HEX < 0x030800b4
41211 #
if PY_VERSION_HEX >= 0x030800b4
41216 #
if PY_MAJOR_VERSION < 3
41219 #
if PY_MAJOR_VERSION >= 3
41222 __pyx_memoryview___repr__,
41224 &__pyx_tp_as_sequence_memoryview,
41225 &__pyx_tp_as_mapping_memoryview,
41228 __pyx_memoryview___str__,
41231 &__pyx_tp_as_buffer_memoryview,
41232 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
41234 __pyx_tp_traverse_memoryview,
41235 __pyx_tp_clear_memoryview,
41240 __pyx_methods_memoryview,
41242 __pyx_getsets_memoryview,
41250 __pyx_tp_new_memoryview,
41260 #
if PY_VERSION_HEX >= 0x030400a1
41263 #
if PY_VERSION_HEX >= 0x030800b1
41266 #
if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
41270 static struct __pyx_vtabstruct__memoryviewslice __pyx_vtable__memoryviewslice;
41272 static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k) {
41273 struct __pyx_memoryviewslice_obj *p;
41274 PyObject *o = __pyx_tp_new_memoryview(t, a, k);
41275 if (unlikely(!o))
return 0;
41276 p = ((
struct __pyx_memoryviewslice_obj *)o);
41277 p->__pyx_base.__pyx_vtab = (
struct __pyx_vtabstruct_memoryview*)__pyx_vtabptr__memoryviewslice;
41278 p->from_object = Py_None; Py_INCREF(Py_None);
41279 p->from_slice.memview = NULL;
41283 static void __pyx_tp_dealloc__memoryviewslice(PyObject *o) {
41284 struct __pyx_memoryviewslice_obj *p = (
struct __pyx_memoryviewslice_obj *)o;
41285 #if CYTHON_USE_TP_FINALIZE 41286 if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
41287 if (PyObject_CallFinalizerFromDealloc(o))
return;
41290 PyObject_GC_UnTrack(o);
41292 PyObject *etype, *eval, *etb;
41293 PyErr_Fetch(&etype, &eval, &etb);
41295 __pyx_memoryviewslice___dealloc__(o);
41297 PyErr_Restore(etype, eval, etb);
41299 Py_CLEAR(p->from_object);
41300 PyObject_GC_Track(o);
41301 __pyx_tp_dealloc_memoryview(o);
41304 static int __pyx_tp_traverse__memoryviewslice(PyObject *o, visitproc
v,
void *a) {
41306 struct __pyx_memoryviewslice_obj *p = (
struct __pyx_memoryviewslice_obj *)o;
41307 e = __pyx_tp_traverse_memoryview(o,
v, a);
if (e)
return e;
41308 if (p->from_object) {
41309 e = (*v)(p->from_object, a);
if (e)
return e;
41314 static int __pyx_tp_clear__memoryviewslice(PyObject *o) {
41316 struct __pyx_memoryviewslice_obj *p = (
struct __pyx_memoryviewslice_obj *)o;
41317 __pyx_tp_clear_memoryview(o);
41318 tmp = ((PyObject*)p->from_object);
41319 p->from_object = Py_None; Py_INCREF(Py_None);
41321 __PYX_XDEC_MEMVIEW(&p->from_slice, 1);
41325 static PyObject *__pyx_getprop___pyx_memoryviewslice_base(PyObject *o, CYTHON_UNUSED
void *x) {
41326 return __pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(o);
41329 static PyMethodDef __pyx_methods__memoryviewslice[] = {
41330 {
"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_1__reduce_cython__, METH_NOARGS, 0},
41331 {
"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_3__setstate_cython__, METH_O, 0},
41335 static struct PyGetSetDef __pyx_getsets__memoryviewslice[] = {
41336 {(
char *)
"base", __pyx_getprop___pyx_memoryviewslice_base, 0, (
char *)0, 0},
41340 static PyTypeObject __pyx_type___pyx_memoryviewslice = {
41341 PyVarObject_HEAD_INIT(0, 0)
41342 "mprans.MeshSmoothing._memoryviewslice",
41343 sizeof(
struct __pyx_memoryviewslice_obj),
41345 __pyx_tp_dealloc__memoryviewslice,
41346 #
if PY_VERSION_HEX < 0x030800b4
41349 #
if PY_VERSION_HEX >= 0x030800b4
41354 #
if PY_MAJOR_VERSION < 3
41357 #
if PY_MAJOR_VERSION >= 3
41360 #
if CYTHON_COMPILING_IN_PYPY
41361 __pyx_memoryview___repr__,
41370 #
if CYTHON_COMPILING_IN_PYPY
41371 __pyx_memoryview___str__,
41378 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
41379 "Internal class for passing memoryview slices to Python",
41380 __pyx_tp_traverse__memoryviewslice,
41381 __pyx_tp_clear__memoryviewslice,
41386 __pyx_methods__memoryviewslice,
41388 __pyx_getsets__memoryviewslice,
41396 __pyx_tp_new__memoryviewslice,
41406 #
if PY_VERSION_HEX >= 0x030400a1
41409 #
if PY_VERSION_HEX >= 0x030800b1
41412 #
if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
41417 static PyMethodDef __pyx_methods[] = {
41421 #if PY_MAJOR_VERSION >= 3 41422 #if CYTHON_PEP489_MULTI_PHASE_INIT 41423 static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def);
41424 static int __pyx_pymod_exec_MeshSmoothing(PyObject* module);
41425 static PyModuleDef_Slot __pyx_moduledef_slots[] = {
41426 {Py_mod_create, (
void*)__pyx_pymod_create},
41427 {Py_mod_exec, (
void*)__pyx_pymod_exec_MeshSmoothing},
41432 static struct PyModuleDef __pyx_moduledef = {
41433 PyModuleDef_HEAD_INIT,
41436 #if CYTHON_PEP489_MULTI_PHASE_INIT 41442 #if CYTHON_PEP489_MULTI_PHASE_INIT 41443 __pyx_moduledef_slots,
41452 #ifndef CYTHON_SMALL_CODE 41453 #if defined(__clang__) 41454 #define CYTHON_SMALL_CODE 41455 #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) 41456 #define CYTHON_SMALL_CODE __attribute__((cold)) 41458 #define CYTHON_SMALL_CODE 41462 static __Pyx_StringTabEntry __pyx_string_tab[] = {
41463 {&__pyx_n_s_ASCII, __pyx_k_ASCII,
sizeof(__pyx_k_ASCII), 0, 0, 1, 1},
41464 {&__pyx_kp_s_Buffer_view_does_not_expose_stri, __pyx_k_Buffer_view_does_not_expose_stri,
sizeof(__pyx_k_Buffer_view_does_not_expose_stri), 0, 0, 1, 0},
41465 {&__pyx_kp_s_Can_only_create_a_buffer_that_is, __pyx_k_Can_only_create_a_buffer_that_is,
sizeof(__pyx_k_Can_only_create_a_buffer_that_is), 0, 0, 1, 0},
41466 {&__pyx_kp_s_Cannot_assign_to_read_only_memor, __pyx_k_Cannot_assign_to_read_only_memor,
sizeof(__pyx_k_Cannot_assign_to_read_only_memor), 0, 0, 1, 0},
41467 {&__pyx_kp_s_Cannot_create_writable_memory_vi, __pyx_k_Cannot_create_writable_memory_vi,
sizeof(__pyx_k_Cannot_create_writable_memory_vi), 0, 0, 1, 0},
41468 {&__pyx_kp_s_Cannot_index_with_type_s, __pyx_k_Cannot_index_with_type_s,
sizeof(__pyx_k_Cannot_index_with_type_s), 0, 0, 1, 0},
41469 {&__pyx_n_s_Comm, __pyx_k_Comm,
sizeof(__pyx_k_Comm), 0, 0, 1, 1},
41470 {&__pyx_n_s_Commit, __pyx_k_Commit,
sizeof(__pyx_k_Commit), 0, 0, 1, 1},
41471 {&__pyx_n_s_Create_contiguous, __pyx_k_Create_contiguous,
sizeof(__pyx_k_Create_contiguous), 0, 0, 1, 1},
41472 {&__pyx_n_s_DOUBLE, __pyx_k_DOUBLE,
sizeof(__pyx_k_DOUBLE), 0, 0, 1, 1},
41473 {&__pyx_n_s_Ellipsis, __pyx_k_Ellipsis,
sizeof(__pyx_k_Ellipsis), 0, 0, 1, 1},
41474 {&__pyx_kp_s_Empty_shape_tuple_for_cython_arr, __pyx_k_Empty_shape_tuple_for_cython_arr,
sizeof(__pyx_k_Empty_shape_tuple_for_cython_arr), 0, 0, 1, 0},
41475 {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor,
sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0},
41476 {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2,
sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0},
41477 {&__pyx_n_s_Gatherv, __pyx_k_Gatherv,
sizeof(__pyx_k_Gatherv), 0, 0, 1, 1},
41478 {&__pyx_n_s_IMRElementsArray, __pyx_k_IMRElementsArray,
sizeof(__pyx_k_IMRElementsArray), 0, 0, 1, 1},
41479 {&__pyx_n_s_IMRNodesArray, __pyx_k_IMRNodesArray,
sizeof(__pyx_k_IMRNodesArray), 0, 0, 1, 1},
41480 {&__pyx_n_s_INT, __pyx_k_INT,
sizeof(__pyx_k_INT), 0, 0, 1, 1},
41481 {&__pyx_n_s_ImportError, __pyx_k_ImportError,
sizeof(__pyx_k_ImportError), 0, 0, 1, 1},
41482 {&__pyx_kp_s_Incompatible_checksums_s_vs_0xb0, __pyx_k_Incompatible_checksums_s_vs_0xb0,
sizeof(__pyx_k_Incompatible_checksums_s_vs_0xb0), 0, 0, 1, 0},
41483 {&__pyx_n_s_IndexError, __pyx_k_IndexError,
sizeof(__pyx_k_IndexError), 0, 0, 1, 1},
41484 {&__pyx_kp_s_Indirect_dimensions_not_supporte, __pyx_k_Indirect_dimensions_not_supporte,
sizeof(__pyx_k_Indirect_dimensions_not_supporte), 0, 0, 1, 0},
41485 {&__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_k_Invalid_mode_expected_c_or_fortr,
sizeof(__pyx_k_Invalid_mode_expected_c_or_fortr), 0, 0, 1, 0},
41486 {&__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_k_Invalid_shape_in_axis_d_d,
sizeof(__pyx_k_Invalid_shape_in_axis_d_d), 0, 0, 1, 0},
41487 {&__pyx_n_s_J_array, __pyx_k_J_array,
sizeof(__pyx_k_J_array), 0, 0, 1, 1},
41488 {&__pyx_n_s_MPI, __pyx_k_MPI,
sizeof(__pyx_k_MPI), 0, 0, 1, 1},
41489 {&__pyx_n_s_MemoryError, __pyx_k_MemoryError,
sizeof(__pyx_k_MemoryError), 0, 0, 1, 1},
41490 {&__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_k_MemoryView_of_r_at_0x_x,
sizeof(__pyx_k_MemoryView_of_r_at_0x_x), 0, 0, 1, 0},
41491 {&__pyx_kp_s_MemoryView_of_r_object, __pyx_k_MemoryView_of_r_object,
sizeof(__pyx_k_MemoryView_of_r_object), 0, 0, 1, 0},
41492 {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor,
sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0},
41493 {&__pyx_n_b_O, __pyx_k_O,
sizeof(__pyx_k_O), 0, 0, 0, 1},
41494 {&__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_k_Out_of_bounds_on_buffer_access_a,
sizeof(__pyx_k_Out_of_bounds_on_buffer_access_a), 0, 0, 1, 0},
41495 {&__pyx_n_s_PickleError, __pyx_k_PickleError,
sizeof(__pyx_k_PickleError), 0, 0, 1, 1},
41496 {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError,
sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1},
41497 {&__pyx_n_s_SUM, __pyx_k_SUM,
sizeof(__pyx_k_SUM), 0, 0, 1, 1},
41498 {&__pyx_kp_b_T, __pyx_k_T,
sizeof(__pyx_k_T), 0, 0, 0, 0},
41499 {&__pyx_n_s_TypeError, __pyx_k_TypeError,
sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
41500 {&__pyx_kp_s_Unable_to_convert_item_to_object, __pyx_k_Unable_to_convert_item_to_object,
sizeof(__pyx_k_Unable_to_convert_item_to_object), 0, 0, 1, 0},
41501 {&__pyx_n_s_ValueError, __pyx_k_ValueError,
sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
41502 {&__pyx_n_s_View_MemoryView, __pyx_k_View_MemoryView,
sizeof(__pyx_k_View_MemoryView), 0, 0, 1, 1},
41503 {&__pyx_kp_b__31, __pyx_k__31,
sizeof(__pyx_k__31), 0, 0, 0, 0},
41504 {&__pyx_kp_b__32, __pyx_k__32,
sizeof(__pyx_k__32), 0, 0, 0, 0},
41505 {&__pyx_kp_b__33, __pyx_k__33,
sizeof(__pyx_k__33), 0, 0, 0, 0},
41506 {&__pyx_kp_b__34, __pyx_k__34,
sizeof(__pyx_k__34), 0, 0, 0, 0},
41507 {&__pyx_kp_u__35, __pyx_k__35,
sizeof(__pyx_k__35), 0, 1, 0, 0},
41508 {&__pyx_n_s_allocate_buffer, __pyx_k_allocate_buffer,
sizeof(__pyx_k_allocate_buffer), 0, 0, 1, 1},
41509 {&__pyx_n_s_allreduce, __pyx_k_allreduce,
sizeof(__pyx_k_allreduce), 0, 0, 1, 1},
41510 {&__pyx_n_s_alpha, __pyx_k_alpha,
sizeof(__pyx_k_alpha), 0, 0, 1, 1},
41511 {&__pyx_n_s_append, __pyx_k_append,
sizeof(__pyx_k_append), 0, 0, 1, 1},
41512 {&__pyx_n_s_apply_directly, __pyx_k_apply_directly,
sizeof(__pyx_k_apply_directly), 0, 0, 1, 1},
41513 {&__pyx_n_s_arg_2doArray, __pyx_k_arg_2doArray,
sizeof(__pyx_k_arg_2doArray), 0, 0, 1, 1},
41514 {&__pyx_n_s_arg_2rank, __pyx_k_arg_2rank,
sizeof(__pyx_k_arg_2rank), 0, 0, 1, 1},
41515 {&__pyx_n_s_arg_2rank_values, __pyx_k_arg_2rank_values,
sizeof(__pyx_k_arg_2rank_values), 0, 0, 1, 1},
41516 {&__pyx_n_s_arg_shape, __pyx_k_arg_shape,
sizeof(__pyx_k_arg_shape), 0, 0, 1, 1},
41517 {&__pyx_n_s_arg_shape_copy, __pyx_k_arg_shape_copy,
sizeof(__pyx_k_arg_shape_copy), 0, 0, 1, 1},
41518 {&__pyx_n_s_arg_shape_len, __pyx_k_arg_shape_len,
sizeof(__pyx_k_arg_shape_len), 0, 0, 1, 1},
41519 {&__pyx_n_s_args, __pyx_k_args,
sizeof(__pyx_k_args), 0, 0, 1, 1},
41520 {&__pyx_n_s_args_2, __pyx_k_args_2,
sizeof(__pyx_k_args_2), 0, 0, 1, 1},
41521 {&__pyx_n_s_array, __pyx_k_array,
sizeof(__pyx_k_array), 0, 0, 1, 1},
41522 {&__pyx_n_s_array_size, __pyx_k_array_size,
sizeof(__pyx_k_array_size), 0, 0, 1, 1},
41523 {&__pyx_n_s_astype, __pyx_k_astype,
sizeof(__pyx_k_astype), 0, 0, 1, 1},
41524 {&__pyx_n_s_base, __pyx_k_base,
sizeof(__pyx_k_base), 0, 0, 1, 1},
41525 {&__pyx_n_s_c, __pyx_k_c,
sizeof(__pyx_k_c), 0, 0, 1, 1},
41526 {&__pyx_n_u_c, __pyx_k_c,
sizeof(__pyx_k_c), 0, 1, 0, 1},
41527 {&__pyx_n_s_checkOwnedVariable, __pyx_k_checkOwnedVariable,
sizeof(__pyx_k_checkOwnedVariable), 0, 0, 1, 1},
41528 {&__pyx_n_s_checkedElements, __pyx_k_checkedElements,
sizeof(__pyx_k_checkedElements), 0, 0, 1, 1},
41529 {&__pyx_n_s_class, __pyx_k_class,
sizeof(__pyx_k_class), 0, 0, 1, 1},
41530 {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback,
sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
41531 {&__pyx_n_s_close, __pyx_k_close,
sizeof(__pyx_k_close), 0, 0, 1, 1},
41532 {&__pyx_n_s_comm, __pyx_k_comm,
sizeof(__pyx_k_comm), 0, 0, 1, 1},
41533 {&__pyx_n_s_comm_size, __pyx_k_comm_size,
sizeof(__pyx_k_comm_size), 0, 0, 1, 1},
41534 {&__pyx_kp_s_contiguous_and_direct, __pyx_k_contiguous_and_direct,
sizeof(__pyx_k_contiguous_and_direct), 0, 0, 1, 0},
41535 {&__pyx_kp_s_contiguous_and_indirect, __pyx_k_contiguous_and_indirect,
sizeof(__pyx_k_contiguous_and_indirect), 0, 0, 1, 0},
41536 {&__pyx_n_s_coords, __pyx_k_coords,
sizeof(__pyx_k_coords), 0, 0, 1, 1},
41537 {&__pyx_kp_s_could_not_find_element_element_e, __pyx_k_could_not_find_element_element_e,
sizeof(__pyx_k_could_not_find_element_element_e), 0, 0, 1, 0},
41538 {&__pyx_n_s_counts_in, __pyx_k_counts_in,
sizeof(__pyx_k_counts_in), 0, 0, 1, 1},
41539 {&__pyx_n_s_counts_out, __pyx_k_counts_out,
sizeof(__pyx_k_counts_out), 0, 0, 1, 1},
41540 {&__pyx_n_s_datatype, __pyx_k_datatype,
sizeof(__pyx_k_datatype), 0, 0, 1, 1},
41541 {&__pyx_n_s_detJ_array, __pyx_k_detJ_array,
sizeof(__pyx_k_detJ_array), 0, 0, 1, 1},
41542 {&__pyx_n_s_dict, __pyx_k_dict,
sizeof(__pyx_k_dict), 0, 0, 1, 1},
41543 {&__pyx_n_s_dilation, __pyx_k_dilation,
sizeof(__pyx_k_dilation), 0, 0, 1, 1},
41544 {&__pyx_n_s_disp, __pyx_k_disp,
sizeof(__pyx_k_disp), 0, 0, 1, 1},
41545 {&__pyx_n_s_displacements_in, __pyx_k_displacements_in,
sizeof(__pyx_k_displacements_in), 0, 0, 1, 1},
41546 {&__pyx_n_s_displacements_out, __pyx_k_displacements_out,
sizeof(__pyx_k_displacements_out), 0, 0, 1, 1},
41547 {&__pyx_n_s_distortion, __pyx_k_distortion,
sizeof(__pyx_k_distortion), 0, 0, 1, 1},
41548 {&__pyx_n_s_dot, __pyx_k_dot,
sizeof(__pyx_k_dot), 0, 0, 1, 1},
41549 {&__pyx_n_s_double, __pyx_k_double,
sizeof(__pyx_k_double), 0, 0, 1, 1},
41550 {&__pyx_n_s_dtype, __pyx_k_dtype,
sizeof(__pyx_k_dtype), 0, 0, 1, 1},
41551 {&__pyx_n_s_dtype_is_object, __pyx_k_dtype_is_object,
sizeof(__pyx_k_dtype_is_object), 0, 0, 1, 1},
41552 {&__pyx_n_s_eN, __pyx_k_eN,
sizeof(__pyx_k_eN), 0, 0, 1, 1},
41553 {&__pyx_n_s_eOffset, __pyx_k_eOffset,
sizeof(__pyx_k_eOffset), 0, 0, 1, 1},
41554 {&__pyx_n_s_el_average, __pyx_k_el_average,
sizeof(__pyx_k_el_average), 0, 0, 1, 1},
41555 {&__pyx_n_s_elementBarycentersArray, __pyx_k_elementBarycentersArray,
sizeof(__pyx_k_elementBarycentersArray), 0, 0, 1, 1},
41556 {&__pyx_n_s_elementBarycentersArray_2, __pyx_k_elementBarycentersArray_2,
sizeof(__pyx_k_elementBarycentersArray_2), 0, 0, 1, 1},
41557 {&__pyx_n_s_elementBoundariesArray, __pyx_k_elementBoundariesArray,
sizeof(__pyx_k_elementBoundariesArray), 0, 0, 1, 1},
41558 {&__pyx_n_s_elementBoundaryBarycentersArray, __pyx_k_elementBoundaryBarycentersArray,
sizeof(__pyx_k_elementBoundaryBarycentersArray), 0, 0, 1, 1},
41559 {&__pyx_n_s_elementBoundaryElementsArray, __pyx_k_elementBoundaryElementsArray,
sizeof(__pyx_k_elementBoundaryElementsArray), 0, 0, 1, 1},
41560 {&__pyx_n_s_elementBoundaryNodesArray, __pyx_k_elementBoundaryNodesArray,
sizeof(__pyx_k_elementBoundaryNodesArray), 0, 0, 1, 1},
41561 {&__pyx_n_s_elementBoundaryNormalsArray, __pyx_k_elementBoundaryNormalsArray,
sizeof(__pyx_k_elementBoundaryNormalsArray), 0, 0, 1, 1},
41562 {&__pyx_n_s_elementBoundaryNormalsArray_2, __pyx_k_elementBoundaryNormalsArray_2,
sizeof(__pyx_k_elementBoundaryNormalsArray_2), 0, 0, 1, 1},
41563 {&__pyx_n_s_elementDilationArray, __pyx_k_elementDilationArray,
sizeof(__pyx_k_elementDilationArray), 0, 0, 1, 1},
41564 {&__pyx_n_s_elementDistortionArray, __pyx_k_elementDistortionArray,
sizeof(__pyx_k_elementDistortionArray), 0, 0, 1, 1},
41565 {&__pyx_n_s_elementMaps, __pyx_k_elementMaps,
sizeof(__pyx_k_elementMaps), 0, 0, 1, 1},
41566 {&__pyx_n_s_elementNeighborsArray, __pyx_k_elementNeighborsArray,
sizeof(__pyx_k_elementNeighborsArray), 0, 0, 1, 1},
41567 {&__pyx_n_s_elementNodesArray, __pyx_k_elementNodesArray,
sizeof(__pyx_k_elementNodesArray), 0, 0, 1, 1},
41568 {&__pyx_n_s_elementVolumeArray, __pyx_k_elementVolumeArray,
sizeof(__pyx_k_elementVolumeArray), 0, 0, 1, 1},
41569 {&__pyx_n_s_elementVolumeTargetArray, __pyx_k_elementVolumeTargetArray,
sizeof(__pyx_k_elementVolumeTargetArray), 0, 0, 1, 1},
41570 {&__pyx_n_s_elementVolumesArray, __pyx_k_elementVolumesArray,
sizeof(__pyx_k_elementVolumesArray), 0, 0, 1, 1},
41571 {&__pyx_n_s_elementVolumesArray_2, __pyx_k_elementVolumesArray_2,
sizeof(__pyx_k_elementVolumesArray_2), 0, 0, 1, 1},
41572 {&__pyx_n_s_encode, __pyx_k_encode,
sizeof(__pyx_k_encode), 0, 0, 1, 1},
41573 {&__pyx_n_s_enumerate, __pyx_k_enumerate,
sizeof(__pyx_k_enumerate), 0, 0, 1, 1},
41574 {&__pyx_n_s_error, __pyx_k_error,
sizeof(__pyx_k_error), 0, 0, 1, 1},
41575 {&__pyx_kp_s_error_looking_for_dir, __pyx_k_error_looking_for_dir,
sizeof(__pyx_k_error_looking_for_dir), 0, 0, 1, 0},
41576 {&__pyx_n_s_exteriorElementBoundariesBoolArr, __pyx_k_exteriorElementBoundariesBoolArr,
sizeof(__pyx_k_exteriorElementBoundariesBoolArr), 0, 0, 1, 1},
41577 {&__pyx_n_s_femSpace, __pyx_k_femSpace,
sizeof(__pyx_k_femSpace), 0, 0, 1, 1},
41578 {&__pyx_n_s_fixedNodesBoolArray, __pyx_k_fixedNodesBoolArray,
sizeof(__pyx_k_fixedNodesBoolArray), 0, 0, 1, 1},
41579 {&__pyx_n_s_flags, __pyx_k_flags,
sizeof(__pyx_k_flags), 0, 0, 1, 1},
41580 {&__pyx_n_s_format, __pyx_k_format,
sizeof(__pyx_k_format), 0, 0, 1, 1},
41581 {&__pyx_n_s_fortran, __pyx_k_fortran,
sizeof(__pyx_k_fortran), 0, 0, 1, 1},
41582 {&__pyx_n_u_fortran, __pyx_k_fortran,
sizeof(__pyx_k_fortran), 0, 1, 0, 1},
41583 {&__pyx_n_s_genexpr, __pyx_k_genexpr,
sizeof(__pyx_k_genexpr), 0, 0, 1, 1},
41584 {&__pyx_n_s_get, __pyx_k_get,
sizeof(__pyx_k_get), 0, 0, 1, 1},
41585 {&__pyx_n_s_getCornerNodesTriangle, __pyx_k_getCornerNodesTriangle,
sizeof(__pyx_k_getCornerNodesTriangle), 0, 0, 1, 1},
41586 {&__pyx_n_s_getDilationElements, __pyx_k_getDilationElements,
sizeof(__pyx_k_getDilationElements), 0, 0, 1, 1},
41587 {&__pyx_n_s_getDistortionElements, __pyx_k_getDistortionElements,
sizeof(__pyx_k_getDistortionElements), 0, 0, 1, 1},
41588 {&__pyx_n_s_getElementBoundaryNormalsTetra, __pyx_k_getElementBoundaryNormalsTetra,
sizeof(__pyx_k_getElementBoundaryNormalsTetra), 0, 0, 1, 1},
41589 {&__pyx_n_s_getElementBoundaryNormalsTriangl, __pyx_k_getElementBoundaryNormalsTriangl,
sizeof(__pyx_k_getElementBoundaryNormalsTriangl), 0, 0, 1, 1},
41590 {&__pyx_n_s_getElementVolumeTriangle, __pyx_k_getElementVolumeTriangle,
sizeof(__pyx_k_getElementVolumeTriangle), 0, 0, 1, 1},
41591 {&__pyx_n_s_getInverseMeanRatioSingleTriangl, __pyx_k_getInverseMeanRatioSingleTriangl,
sizeof(__pyx_k_getInverseMeanRatioSingleTriangl), 0, 0, 1, 1},
41592 {&__pyx_n_s_getInverseMeanRatioTriangleEleme, __pyx_k_getInverseMeanRatioTriangleEleme,
sizeof(__pyx_k_getInverseMeanRatioTriangleEleme), 0, 0, 1, 1},
41593 {&__pyx_n_s_getInverseMeanRatioTriangleNodes, __pyx_k_getInverseMeanRatioTriangleNodes,
sizeof(__pyx_k_getInverseMeanRatioTriangleNodes), 0, 0, 1, 1},
41594 {&__pyx_n_s_getInverseValue, __pyx_k_getInverseValue,
sizeof(__pyx_k_getInverseValue), 0, 0, 1, 1},
41595 {&__pyx_n_s_getLocalElement, __pyx_k_getLocalElement,
sizeof(__pyx_k_getLocalElement), 0, 0, 1, 1},
41596 {&__pyx_n_s_getLocalNearestElement, __pyx_k_getLocalNearestElement,
sizeof(__pyx_k_getLocalNearestElement), 0, 0, 1, 1},
41597 {&__pyx_n_s_getLocalNearestElementAroundNode, __pyx_k_getLocalNearestElementAroundNode,
sizeof(__pyx_k_getLocalNearestElementAroundNode), 0, 0, 1, 1},
41598 {&__pyx_n_s_getLocalNearestElementIntersecti, __pyx_k_getLocalNearestElementIntersecti,
sizeof(__pyx_k_getLocalNearestElementIntersecti), 0, 0, 1, 1},
41599 {&__pyx_n_s_getLocalNearestNode, __pyx_k_getLocalNearestNode,
sizeof(__pyx_k_getLocalNearestNode), 0, 0, 1, 1},
41600 {&__pyx_n_s_getNonOwnedNodeValues, __pyx_k_getNonOwnedNodeValues,
sizeof(__pyx_k_getNonOwnedNodeValues), 0, 0, 1, 1},
41601 {&__pyx_n_s_getNonOwnedNodeValues_locals_gen, __pyx_k_getNonOwnedNodeValues_locals_gen,
sizeof(__pyx_k_getNonOwnedNodeValues_locals_gen), 0, 0, 1, 1},
41602 {&__pyx_n_s_getstate, __pyx_k_getstate,
sizeof(__pyx_k_getstate), 0, 0, 1, 1},
41603 {&__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_k_got_differing_extents_in_dimensi,
sizeof(__pyx_k_got_differing_extents_in_dimensi), 0, 0, 1, 0},
41604 {&__pyx_n_s_i, __pyx_k_i,
sizeof(__pyx_k_i), 0, 0, 1, 1},
41605 {&__pyx_n_s_iN, __pyx_k_iN,
sizeof(__pyx_k_iN), 0, 0, 1, 1},
41606 {&__pyx_n_s_id, __pyx_k_id,
sizeof(__pyx_k_id), 0, 0, 1, 1},
41607 {&__pyx_n_s_ii, __pyx_k_ii,
sizeof(__pyx_k_ii), 0, 0, 1, 1},
41608 {&__pyx_n_s_import, __pyx_k_import,
sizeof(__pyx_k_import), 0, 0, 1, 1},
41609 {&__pyx_n_s_int32, __pyx_k_int32,
sizeof(__pyx_k_int32), 0, 0, 1, 1},
41610 {&__pyx_n_s_inv, __pyx_k_inv,
sizeof(__pyx_k_inv), 0, 0, 1, 1},
41611 {&__pyx_n_s_ir, __pyx_k_ir,
sizeof(__pyx_k_ir), 0, 0, 1, 1},
41612 {&__pyx_n_s_itemsize, __pyx_k_itemsize,
sizeof(__pyx_k_itemsize), 0, 0, 1, 1},
41613 {&__pyx_kp_s_itemsize_0_for_cython_array, __pyx_k_itemsize_0_for_cython_array,
sizeof(__pyx_k_itemsize_0_for_cython_array), 0, 0, 1, 0},
41614 {&__pyx_n_s_join, __pyx_k_join,
sizeof(__pyx_k_join), 0, 0, 1, 1},
41615 {&__pyx_n_s_linalg, __pyx_k_linalg,
sizeof(__pyx_k_linalg), 0, 0, 1, 1},
41616 {&__pyx_n_s_logEvent, __pyx_k_logEvent,
sizeof(__pyx_k_logEvent), 0, 0, 1, 1},
41617 {&__pyx_n_s_main, __pyx_k_main,
sizeof(__pyx_k_main), 0, 0, 1, 1},
41618 {&__pyx_n_s_maxit, __pyx_k_maxit,
sizeof(__pyx_k_maxit), 0, 0, 1, 1},
41619 {&__pyx_n_s_memview, __pyx_k_memview,
sizeof(__pyx_k_memview), 0, 0, 1, 1},
41620 {&__pyx_n_s_mesh, __pyx_k_mesh,
sizeof(__pyx_k_mesh), 0, 0, 1, 1},
41621 {&__pyx_n_s_mode, __pyx_k_mode,
sizeof(__pyx_k_mode), 0, 0, 1, 1},
41622 {&__pyx_n_s_mpi4py, __pyx_k_mpi4py,
sizeof(__pyx_k_mpi4py), 0, 0, 1, 1},
41623 {&__pyx_n_s_mprans_MeshSmoothing, __pyx_k_mprans_MeshSmoothing,
sizeof(__pyx_k_mprans_MeshSmoothing), 0, 0, 1, 1},
41624 {&__pyx_n_s_my_rank, __pyx_k_my_rank,
sizeof(__pyx_k_my_rank), 0, 0, 1, 1},
41625 {&__pyx_n_s_my_size, __pyx_k_my_size,
sizeof(__pyx_k_my_size), 0, 0, 1, 1},
41626 {&__pyx_n_s_nA, __pyx_k_nA,
sizeof(__pyx_k_nA), 0, 0, 1, 1},
41627 {&__pyx_n_s_nB, __pyx_k_nB,
sizeof(__pyx_k_nB), 0, 0, 1, 1},
41628 {&__pyx_n_s_nC, __pyx_k_nC,
sizeof(__pyx_k_nC), 0, 0, 1, 1},
41629 {&__pyx_n_s_nElements, __pyx_k_nElements,
sizeof(__pyx_k_nElements), 0, 0, 1, 1},
41630 {&__pyx_n_s_nNodes, __pyx_k_nNodes,
sizeof(__pyx_k_nNodes), 0, 0, 1, 1},
41631 {&__pyx_n_s_nNodes_global, __pyx_k_nNodes_global,
sizeof(__pyx_k_nNodes_global), 0, 0, 1, 1},
41632 {&__pyx_n_s_nNodes_owned, __pyx_k_nNodes_owned,
sizeof(__pyx_k_nNodes_owned), 0, 0, 1, 1},
41633 {&__pyx_n_s_nVariables_owned, __pyx_k_nVariables_owned,
sizeof(__pyx_k_nVariables_owned), 0, 0, 1, 1},
41634 {&__pyx_n_s_name, __pyx_k_name,
sizeof(__pyx_k_name), 0, 0, 1, 1},
41635 {&__pyx_n_s_name_2, __pyx_k_name_2,
sizeof(__pyx_k_name_2), 0, 0, 1, 1},
41636 {&__pyx_n_s_nd, __pyx_k_nd,
sizeof(__pyx_k_nd), 0, 0, 1, 1},
41637 {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous,
sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0},
41638 {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou,
sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0},
41639 {&__pyx_n_s_ndim, __pyx_k_ndim,
sizeof(__pyx_k_ndim), 0, 0, 1, 1},
41640 {&__pyx_n_s_nearest_eN, __pyx_k_nearest_eN,
sizeof(__pyx_k_nearest_eN), 0, 0, 1, 1},
41641 {&__pyx_n_s_new, __pyx_k_new,
sizeof(__pyx_k_new), 0, 0, 1, 1},
41642 {&__pyx_n_s_new_rank, __pyx_k_new_rank,
sizeof(__pyx_k_new_rank), 0, 0, 1, 1},
41643 {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non,
sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0},
41644 {&__pyx_n_s_node, __pyx_k_node,
sizeof(__pyx_k_node), 0, 0, 1, 1},
41645 {&__pyx_n_s_node0, __pyx_k_node0,
sizeof(__pyx_k_node0), 0, 0, 1, 1},
41646 {&__pyx_n_s_nodeArray, __pyx_k_nodeArray,
sizeof(__pyx_k_nodeArray), 0, 0, 1, 1},
41647 {&__pyx_n_s_nodeArray_2, __pyx_k_nodeArray_2,
sizeof(__pyx_k_nodeArray_2), 0, 0, 1, 1},
41648 {&__pyx_n_s_nodeElementOffsets, __pyx_k_nodeElementOffsets,
sizeof(__pyx_k_nodeElementOffsets), 0, 0, 1, 1},
41649 {&__pyx_n_s_nodeElementsArray, __pyx_k_nodeElementsArray,
sizeof(__pyx_k_nodeElementsArray), 0, 0, 1, 1},
41650 {&__pyx_n_s_nodeMaterialTypes, __pyx_k_nodeMaterialTypes,
sizeof(__pyx_k_nodeMaterialTypes), 0, 0, 1, 1},
41651 {&__pyx_n_s_nodeNumbering_subdomain2global, __pyx_k_nodeNumbering_subdomain2global,
sizeof(__pyx_k_nodeNumbering_subdomain2global), 0, 0, 1, 1},
41652 {&__pyx_n_s_nodeOffsets_subdomain_owned, __pyx_k_nodeOffsets_subdomain_owned,
sizeof(__pyx_k_nodeOffsets_subdomain_owned), 0, 0, 1, 1},
41653 {&__pyx_n_s_nodeStarArray, __pyx_k_nodeStarArray,
sizeof(__pyx_k_nodeStarArray), 0, 0, 1, 1},
41654 {&__pyx_n_s_nodeStarOffsets, __pyx_k_nodeStarOffsets,
sizeof(__pyx_k_nodeStarOffsets), 0, 0, 1, 1},
41655 {&__pyx_n_s_node_new_rank, __pyx_k_node_new_rank,
sizeof(__pyx_k_node_new_rank), 0, 0, 1, 1},
41656 {&__pyx_n_s_nodes_2doArray, __pyx_k_nodes_2doArray,
sizeof(__pyx_k_nodes_2doArray), 0, 0, 1, 1},
41657 {&__pyx_n_s_nodes_2rank, __pyx_k_nodes_2rank,
sizeof(__pyx_k_nodes_2rank), 0, 0, 1, 1},
41658 {&__pyx_n_s_nodes_2rank_len, __pyx_k_nodes_2rank_len,
sizeof(__pyx_k_nodes_2rank_len), 0, 0, 1, 1},
41659 {&__pyx_n_s_nodes_2rank_values, __pyx_k_nodes_2rank_values,
sizeof(__pyx_k_nodes_2rank_values), 0, 0, 1, 1},
41660 {&__pyx_n_s_np, __pyx_k_np,
sizeof(__pyx_k_np), 0, 0, 1, 1},
41661 {&__pyx_n_s_numpy, __pyx_k_numpy,
sizeof(__pyx_k_numpy), 0, 0, 1, 1},
41662 {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to,
sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0},
41663 {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor,
sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0},
41664 {&__pyx_n_s_obj, __pyx_k_obj,
sizeof(__pyx_k_obj), 0, 0, 1, 1},
41665 {&__pyx_n_s_onElement, __pyx_k_onElement,
sizeof(__pyx_k_onElement), 0, 0, 1, 1},
41666 {&__pyx_n_s_op, __pyx_k_op,
sizeof(__pyx_k_op), 0, 0, 1, 1},
41667 {&__pyx_n_s_pack, __pyx_k_pack,
sizeof(__pyx_k_pack), 0, 0, 1, 1},
41668 {&__pyx_n_s_patchBoundaryNodes, __pyx_k_patchBoundaryNodes,
sizeof(__pyx_k_patchBoundaryNodes), 0, 0, 1, 1},
41669 {&__pyx_n_s_pickle, __pyx_k_pickle,
sizeof(__pyx_k_pickle), 0, 0, 1, 1},
41670 {&__pyx_n_s_proteus, __pyx_k_proteus,
sizeof(__pyx_k_proteus), 0, 0, 1, 1},
41671 {&__pyx_n_s_proteus_Profiling, __pyx_k_proteus_Profiling,
sizeof(__pyx_k_proteus_Profiling), 0, 0, 1, 1},
41672 {&__pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_k_proteus_mprans_MeshSmoothing_pyx,
sizeof(__pyx_k_proteus_mprans_MeshSmoothing_pyx), 0, 0, 1, 0},
41673 {&__pyx_n_s_pyScalarRecoveryAtNodes, __pyx_k_pyScalarRecoveryAtNodes,
sizeof(__pyx_k_pyScalarRecoveryAtNodes), 0, 0, 1, 1},
41674 {&__pyx_n_s_pyScalarRecoveryAtNodesWeighted, __pyx_k_pyScalarRecoveryAtNodesWeighted,
sizeof(__pyx_k_pyScalarRecoveryAtNodesWeighted), 0, 0, 1, 1},
41675 {&__pyx_n_s_pyVectorRecoveryAtNodes, __pyx_k_pyVectorRecoveryAtNodes,
sizeof(__pyx_k_pyVectorRecoveryAtNodes), 0, 0, 1, 1},
41676 {&__pyx_n_s_pyVectorRecoveryAtNodesWeighted, __pyx_k_pyVectorRecoveryAtNodesWeighted,
sizeof(__pyx_k_pyVectorRecoveryAtNodesWeighted), 0, 0, 1, 1},
41677 {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError,
sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1},
41678 {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum,
sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1},
41679 {&__pyx_n_s_pyx_getbuffer, __pyx_k_pyx_getbuffer,
sizeof(__pyx_k_pyx_getbuffer), 0, 0, 1, 1},
41680 {&__pyx_n_s_pyx_result, __pyx_k_pyx_result,
sizeof(__pyx_k_pyx_result), 0, 0, 1, 1},
41681 {&__pyx_n_s_pyx_state, __pyx_k_pyx_state,
sizeof(__pyx_k_pyx_state), 0, 0, 1, 1},
41682 {&__pyx_n_s_pyx_type, __pyx_k_pyx_type,
sizeof(__pyx_k_pyx_type), 0, 0, 1, 1},
41683 {&__pyx_n_s_pyx_unpickle_Enum, __pyx_k_pyx_unpickle_Enum,
sizeof(__pyx_k_pyx_unpickle_Enum), 0, 0, 1, 1},
41684 {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable,
sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1},
41685 {&__pyx_n_s_range, __pyx_k_range,
sizeof(__pyx_k_range), 0, 0, 1, 1},
41686 {&__pyx_n_s_rank, __pyx_k_rank,
sizeof(__pyx_k_rank), 0, 0, 1, 1},
41687 {&__pyx_n_s_rank_recv, __pyx_k_rank_recv,
sizeof(__pyx_k_rank_recv), 0, 0, 1, 1},
41688 {&__pyx_n_s_reduce, __pyx_k_reduce,
sizeof(__pyx_k_reduce), 0, 0, 1, 1},
41689 {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython,
sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1},
41690 {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex,
sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1},
41691 {&__pyx_n_s_referenceElement, __pyx_k_referenceElement,
sizeof(__pyx_k_referenceElement), 0, 0, 1, 1},
41692 {&__pyx_n_s_result, __pyx_k_result,
sizeof(__pyx_k_result), 0, 0, 1, 1},
41693 {&__pyx_n_s_root, __pyx_k_root,
sizeof(__pyx_k_root), 0, 0, 1, 1},
41694 {&__pyx_kp_u_s, __pyx_k_s,
sizeof(__pyx_k_s), 0, 1, 0, 0},
41695 {&__pyx_n_s_scalars, __pyx_k_scalars,
sizeof(__pyx_k_scalars), 0, 0, 1, 1},
41696 {&__pyx_n_s_send, __pyx_k_send,
sizeof(__pyx_k_send), 0, 0, 1, 1},
41697 {&__pyx_n_s_setstate, __pyx_k_setstate,
sizeof(__pyx_k_setstate), 0, 0, 1, 1},
41698 {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython,
sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1},
41699 {&__pyx_n_s_shape, __pyx_k_shape,
sizeof(__pyx_k_shape), 0, 0, 1, 1},
41700 {&__pyx_n_s_shape_factor, __pyx_k_shape_factor,
sizeof(__pyx_k_shape_factor), 0, 0, 1, 1},
41701 {&__pyx_n_s_simultaneous, __pyx_k_simultaneous,
sizeof(__pyx_k_simultaneous), 0, 0, 1, 1},
41702 {&__pyx_n_s_size, __pyx_k_size,
sizeof(__pyx_k_size), 0, 0, 1, 1},
41703 {&__pyx_n_s_smoothBoundaries, __pyx_k_smoothBoundaries,
sizeof(__pyx_k_smoothBoundaries), 0, 0, 1, 1},
41704 {&__pyx_n_s_smoothNodesCentroid, __pyx_k_smoothNodesCentroid,
sizeof(__pyx_k_smoothNodesCentroid), 0, 0, 1, 1},
41705 {&__pyx_n_s_smoothNodesLaplace, __pyx_k_smoothNodesLaplace,
sizeof(__pyx_k_smoothNodesLaplace), 0, 0, 1, 1},
41706 {&__pyx_n_s_smoothNodesQuality, __pyx_k_smoothNodesQuality,
sizeof(__pyx_k_smoothNodesQuality), 0, 0, 1, 1},
41707 {&__pyx_kp_s_smoothNodesQuality_is_work_in_pr, __pyx_k_smoothNodesQuality_is_work_in_pr,
sizeof(__pyx_k_smoothNodesQuality_is_work_in_pr), 0, 0, 1, 0},
41708 {&__pyx_n_s_start, __pyx_k_start,
sizeof(__pyx_k_start), 0, 0, 1, 1},
41709 {&__pyx_n_s_starting_coords, __pyx_k_starting_coords,
sizeof(__pyx_k_starting_coords), 0, 0, 1, 1},
41710 {&__pyx_n_s_step, __pyx_k_step,
sizeof(__pyx_k_step), 0, 0, 1, 1},
41711 {&__pyx_n_s_stop, __pyx_k_stop,
sizeof(__pyx_k_stop), 0, 0, 1, 1},
41712 {&__pyx_kp_s_strided_and_direct, __pyx_k_strided_and_direct,
sizeof(__pyx_k_strided_and_direct), 0, 0, 1, 0},
41713 {&__pyx_kp_s_strided_and_direct_or_indirect, __pyx_k_strided_and_direct_or_indirect,
sizeof(__pyx_k_strided_and_direct_or_indirect), 0, 0, 1, 0},
41714 {&__pyx_kp_s_strided_and_indirect, __pyx_k_strided_and_indirect,
sizeof(__pyx_k_strided_and_indirect), 0, 0, 1, 0},
41715 {&__pyx_kp_s_stringsource, __pyx_k_stringsource,
sizeof(__pyx_k_stringsource), 0, 0, 1, 0},
41716 {&__pyx_n_s_struct, __pyx_k_struct,
sizeof(__pyx_k_struct), 0, 0, 1, 1},
41717 {&__pyx_n_s_sumtot, __pyx_k_sumtot,
sizeof(__pyx_k_sumtot), 0, 0, 1, 1},
41718 {&__pyx_n_s_test, __pyx_k_test,
sizeof(__pyx_k_test), 0, 0, 1, 1},
41719 {&__pyx_n_s_throw, __pyx_k_throw,
sizeof(__pyx_k_throw), 0, 0, 1, 1},
41720 {&__pyx_n_s_tompi4py, __pyx_k_tompi4py,
sizeof(__pyx_k_tompi4py), 0, 0, 1, 1},
41721 {&__pyx_n_s_transpose, __pyx_k_transpose,
sizeof(__pyx_k_transpose), 0, 0, 1, 1},
41722 {&__pyx_kp_s_unable_to_allocate_array_data, __pyx_k_unable_to_allocate_array_data,
sizeof(__pyx_k_unable_to_allocate_array_data), 0, 0, 1, 0},
41723 {&__pyx_kp_s_unable_to_allocate_shape_and_str, __pyx_k_unable_to_allocate_shape_and_str,
sizeof(__pyx_k_unable_to_allocate_shape_and_str), 0, 0, 1, 0},
41724 {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd,
sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0},
41725 {&__pyx_n_s_unpack, __pyx_k_unpack,
sizeof(__pyx_k_unpack), 0, 0, 1, 1},
41726 {&__pyx_n_s_update, __pyx_k_update,
sizeof(__pyx_k_update), 0, 0, 1, 1},
41727 {&__pyx_n_s_updateDilationElements, __pyx_k_updateDilationElements,
sizeof(__pyx_k_updateDilationElements), 0, 0, 1, 1},
41728 {&__pyx_n_s_updateDistortionElements, __pyx_k_updateDistortionElements,
sizeof(__pyx_k_updateDistortionElements), 0, 0, 1, 1},
41729 {&__pyx_n_s_updateElementBarycenters, __pyx_k_updateElementBarycenters,
sizeof(__pyx_k_updateElementBarycenters), 0, 0, 1, 1},
41730 {&__pyx_n_s_updateElementBoundaryNormalsTetr, __pyx_k_updateElementBoundaryNormalsTetr,
sizeof(__pyx_k_updateElementBoundaryNormalsTetr), 0, 0, 1, 1},
41731 {&__pyx_n_s_updateElementBoundaryNormalsTria, __pyx_k_updateElementBoundaryNormalsTria,
sizeof(__pyx_k_updateElementBoundaryNormalsTria), 0, 0, 1, 1},
41732 {&__pyx_n_s_updateElementVolumesTetra, __pyx_k_updateElementVolumesTetra,
sizeof(__pyx_k_updateElementVolumesTetra), 0, 0, 1, 1},
41733 {&__pyx_n_s_updateElementVolumesTriangle, __pyx_k_updateElementVolumesTriangle,
sizeof(__pyx_k_updateElementVolumesTriangle), 0, 0, 1, 1},
41734 {&__pyx_n_s_updateInverseMeanRatioTriangleEl, __pyx_k_updateInverseMeanRatioTriangleEl,
sizeof(__pyx_k_updateInverseMeanRatioTriangleEl), 0, 0, 1, 1},
41735 {&__pyx_n_s_updateInverseMeanRatioTriangleNo, __pyx_k_updateInverseMeanRatioTriangleNo,
sizeof(__pyx_k_updateInverseMeanRatioTriangleNo), 0, 0, 1, 1},
41736 {&__pyx_n_s_variableNumbering_subdomain2glob, __pyx_k_variableNumbering_subdomain2glob,
sizeof(__pyx_k_variableNumbering_subdomain2glob), 0, 0, 1, 1},
41737 {&__pyx_n_s_variableOffsets_subdomain_owned, __pyx_k_variableOffsets_subdomain_owned,
sizeof(__pyx_k_variableOffsets_subdomain_owned), 0, 0, 1, 1},
41738 {&__pyx_n_s_variable_nb_local, __pyx_k_variable_nb_local,
sizeof(__pyx_k_variable_nb_local), 0, 0, 1, 1},
41739 {&__pyx_n_s_vectors, __pyx_k_vectors,
sizeof(__pyx_k_vectors), 0, 0, 1, 1},
41740 {&__pyx_n_s_x, __pyx_k_x,
sizeof(__pyx_k_x), 0, 0, 1, 1},
41741 {&__pyx_n_s_x2, __pyx_k_x2,
sizeof(__pyx_k_x2), 0, 0, 1, 1},
41742 {&__pyx_n_s_xi, __pyx_k_xi,
sizeof(__pyx_k_xi), 0, 0, 1, 1},
41743 {&__pyx_n_s_y, __pyx_k_y,
sizeof(__pyx_k_y), 0, 0, 1, 1},
41744 {&__pyx_n_s_y2, __pyx_k_y2,
sizeof(__pyx_k_y2), 0, 0, 1, 1},
41745 {&__pyx_n_s_z, __pyx_k_z,
sizeof(__pyx_k_z), 0, 0, 1, 1},
41746 {&__pyx_n_s_z2, __pyx_k_z2,
sizeof(__pyx_k_z2), 0, 0, 1, 1},
41747 {&__pyx_n_s_zeros, __pyx_k_zeros,
sizeof(__pyx_k_zeros), 0, 0, 1, 1},
41748 {&__pyx_n_s_zeros_like, __pyx_k_zeros_like,
sizeof(__pyx_k_zeros_like), 0, 0, 1, 1},
41749 {0, 0, 0, 0, 0, 0, 0}
41751 static CYTHON_SMALL_CODE
int __Pyx_InitCachedBuiltins(
void) {
41752 __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range);
if (!__pyx_builtin_range) __PYX_ERR(0, 414, __pyx_L1_error)
41753 __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate);
if (!__pyx_builtin_enumerate) __PYX_ERR(0, 1041, __pyx_L1_error)
41754 __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError);
if (!__pyx_builtin_ValueError) __PYX_ERR(1, 272, __pyx_L1_error)
41755 __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError);
if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 856, __pyx_L1_error)
41756 __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError);
if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1038, __pyx_L1_error)
41757 __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError);
if (!__pyx_builtin_MemoryError) __PYX_ERR(2, 148, __pyx_L1_error)
41758 __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError);
if (!__pyx_builtin_TypeError) __PYX_ERR(2, 2, __pyx_L1_error)
41759 __pyx_builtin_Ellipsis = __Pyx_GetBuiltinName(__pyx_n_s_Ellipsis);
if (!__pyx_builtin_Ellipsis) __PYX_ERR(2, 404, __pyx_L1_error)
41760 __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id);
if (!__pyx_builtin_id) __PYX_ERR(2, 613, __pyx_L1_error)
41761 __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError);
if (!__pyx_builtin_IndexError) __PYX_ERR(2, 832, __pyx_L1_error)
41767 static CYTHON_SMALL_CODE
int __Pyx_InitCachedConstants(
void) {
41768 __Pyx_RefNannyDeclarations
41769 __Pyx_RefNannySetupContext(
"__Pyx_InitCachedConstants", 0);
41778 __pyx_tuple__3 = PyTuple_Pack(1, __pyx_int_0);
if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 588, __pyx_L1_error)
41779 __Pyx_GOTREF(__pyx_tuple__3);
41780 __Pyx_GIVEREF(__pyx_tuple__3);
41789 __pyx_slice__4 = PySlice_New(Py_None, Py_None, Py_None);
if (unlikely(!__pyx_slice__4)) __PYX_ERR(0, 608, __pyx_L1_error)
41790 __Pyx_GOTREF(__pyx_slice__4);
41791 __Pyx_GIVEREF(__pyx_slice__4);
41800 __pyx_tuple__6 = PyTuple_Pack(2, __pyx_int_2, __pyx_int_2);
if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 977, __pyx_L1_error)
41801 __Pyx_GOTREF(__pyx_tuple__6);
41802 __Pyx_GIVEREF(__pyx_tuple__6);
41811 __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous);
if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 272, __pyx_L1_error)
41812 __Pyx_GOTREF(__pyx_tuple__7);
41813 __Pyx_GIVEREF(__pyx_tuple__7);
41822 __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou);
if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 276, __pyx_L1_error)
41823 __Pyx_GOTREF(__pyx_tuple__8);
41824 __Pyx_GIVEREF(__pyx_tuple__8);
41833 __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor);
if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 306, __pyx_L1_error)
41834 __Pyx_GOTREF(__pyx_tuple__9);
41835 __Pyx_GIVEREF(__pyx_tuple__9);
41844 __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor);
if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 856, __pyx_L1_error)
41845 __Pyx_GOTREF(__pyx_tuple__10);
41846 __Pyx_GIVEREF(__pyx_tuple__10);
41855 __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2);
if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 880, __pyx_L1_error)
41856 __Pyx_GOTREF(__pyx_tuple__11);
41857 __Pyx_GIVEREF(__pyx_tuple__11);
41866 __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to);
if (unlikely(!__pyx_tuple__12)) __PYX_ERR(1, 1038, __pyx_L1_error)
41867 __Pyx_GOTREF(__pyx_tuple__12);
41868 __Pyx_GIVEREF(__pyx_tuple__12);
41877 __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor);
if (unlikely(!__pyx_tuple__13)) __PYX_ERR(1, 1044, __pyx_L1_error)
41878 __Pyx_GOTREF(__pyx_tuple__13);
41879 __Pyx_GIVEREF(__pyx_tuple__13);
41888 __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_Empty_shape_tuple_for_cython_arr);
if (unlikely(!__pyx_tuple__14)) __PYX_ERR(2, 133, __pyx_L1_error)
41889 __Pyx_GOTREF(__pyx_tuple__14);
41890 __Pyx_GIVEREF(__pyx_tuple__14);
41899 __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_s_itemsize_0_for_cython_array);
if (unlikely(!__pyx_tuple__15)) __PYX_ERR(2, 136, __pyx_L1_error)
41900 __Pyx_GOTREF(__pyx_tuple__15);
41901 __Pyx_GIVEREF(__pyx_tuple__15);
41910 __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_shape_and_str);
if (unlikely(!__pyx_tuple__16)) __PYX_ERR(2, 148, __pyx_L1_error)
41911 __Pyx_GOTREF(__pyx_tuple__16);
41912 __Pyx_GIVEREF(__pyx_tuple__16);
41921 __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_array_data);
if (unlikely(!__pyx_tuple__17)) __PYX_ERR(2, 176, __pyx_L1_error)
41922 __Pyx_GOTREF(__pyx_tuple__17);
41923 __Pyx_GIVEREF(__pyx_tuple__17);
41932 __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_Can_only_create_a_buffer_that_is);
if (unlikely(!__pyx_tuple__18)) __PYX_ERR(2, 192, __pyx_L1_error)
41933 __Pyx_GOTREF(__pyx_tuple__18);
41934 __Pyx_GIVEREF(__pyx_tuple__18);
41942 __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non);
if (unlikely(!__pyx_tuple__19)) __PYX_ERR(2, 2, __pyx_L1_error)
41943 __Pyx_GOTREF(__pyx_tuple__19);
41944 __Pyx_GIVEREF(__pyx_tuple__19);
41951 __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non);
if (unlikely(!__pyx_tuple__20)) __PYX_ERR(2, 4, __pyx_L1_error)
41952 __Pyx_GOTREF(__pyx_tuple__20);
41953 __Pyx_GIVEREF(__pyx_tuple__20);
41962 __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_s_Cannot_assign_to_read_only_memor);
if (unlikely(!__pyx_tuple__21)) __PYX_ERR(2, 418, __pyx_L1_error)
41963 __Pyx_GOTREF(__pyx_tuple__21);
41964 __Pyx_GIVEREF(__pyx_tuple__21);
41973 __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_s_Unable_to_convert_item_to_object);
if (unlikely(!__pyx_tuple__22)) __PYX_ERR(2, 495, __pyx_L1_error)
41974 __Pyx_GOTREF(__pyx_tuple__22);
41975 __Pyx_GIVEREF(__pyx_tuple__22);
41984 __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_s_Cannot_create_writable_memory_vi);
if (unlikely(!__pyx_tuple__23)) __PYX_ERR(2, 520, __pyx_L1_error)
41985 __Pyx_GOTREF(__pyx_tuple__23);
41986 __Pyx_GIVEREF(__pyx_tuple__23);
41995 __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_s_Buffer_view_does_not_expose_stri);
if (unlikely(!__pyx_tuple__24)) __PYX_ERR(2, 570, __pyx_L1_error)
41996 __Pyx_GOTREF(__pyx_tuple__24);
41997 __Pyx_GIVEREF(__pyx_tuple__24);
42006 __pyx_tuple__25 = PyTuple_New(1);
if (unlikely(!__pyx_tuple__25)) __PYX_ERR(2, 577, __pyx_L1_error)
42007 __Pyx_GOTREF(__pyx_tuple__25);
42008 __Pyx_INCREF(__pyx_int_neg_1);
42009 __Pyx_GIVEREF(__pyx_int_neg_1);
42010 PyTuple_SET_ITEM(__pyx_tuple__25, 0, __pyx_int_neg_1);
42011 __Pyx_GIVEREF(__pyx_tuple__25);
42019 __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non);
if (unlikely(!__pyx_tuple__26)) __PYX_ERR(2, 2, __pyx_L1_error)
42020 __Pyx_GOTREF(__pyx_tuple__26);
42021 __Pyx_GIVEREF(__pyx_tuple__26);
42028 __pyx_tuple__27 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non);
if (unlikely(!__pyx_tuple__27)) __PYX_ERR(2, 4, __pyx_L1_error)
42029 __Pyx_GOTREF(__pyx_tuple__27);
42030 __Pyx_GIVEREF(__pyx_tuple__27);
42039 __pyx_tuple__28 = PyTuple_Pack(1, __pyx_kp_s_Indirect_dimensions_not_supporte);
if (unlikely(!__pyx_tuple__28)) __PYX_ERR(2, 703, __pyx_L1_error)
42040 __Pyx_GOTREF(__pyx_tuple__28);
42041 __Pyx_GIVEREF(__pyx_tuple__28);
42049 __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non);
if (unlikely(!__pyx_tuple__29)) __PYX_ERR(2, 2, __pyx_L1_error)
42050 __Pyx_GOTREF(__pyx_tuple__29);
42051 __Pyx_GIVEREF(__pyx_tuple__29);
42058 __pyx_tuple__30 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non);
if (unlikely(!__pyx_tuple__30)) __PYX_ERR(2, 4, __pyx_L1_error)
42059 __Pyx_GOTREF(__pyx_tuple__30);
42060 __Pyx_GIVEREF(__pyx_tuple__30);
42069 __pyx_tuple__36 = PyTuple_Pack(10, __pyx_n_s_nodeArray, __pyx_n_s_nodeStarOffsets, __pyx_n_s_nodeStarArray, __pyx_n_s_nodeMaterialTypes, __pyx_n_s_nNodes_owned, __pyx_n_s_nd, __pyx_n_s_simultaneous, __pyx_n_s_smoothBoundaries, __pyx_n_s_fixedNodesBoolArray, __pyx_n_s_alpha);
if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 11, __pyx_L1_error)
42070 __Pyx_GOTREF(__pyx_tuple__36);
42071 __Pyx_GIVEREF(__pyx_tuple__36);
42072 __pyx_codeobj__37 = (PyObject*)__Pyx_PyCode_New(10, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__36, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_smoothNodesLaplace, 11, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__37)) __PYX_ERR(0, 11, __pyx_L1_error)
42081 __pyx_tuple__38 = PyTuple_Pack(12, __pyx_n_s_nodeArray, __pyx_n_s_nodeElementOffsets, __pyx_n_s_nodeElementsArray, __pyx_n_s_nodeMaterialTypes, __pyx_n_s_elementBarycentersArray, __pyx_n_s_elementVolumesArray, __pyx_n_s_elementNodesArray, __pyx_n_s_nNodes_owned, __pyx_n_s_simultaneous, __pyx_n_s_smoothBoundaries, __pyx_n_s_fixedNodesBoolArray, __pyx_n_s_alpha);
if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 64, __pyx_L1_error)
42082 __Pyx_GOTREF(__pyx_tuple__38);
42083 __Pyx_GIVEREF(__pyx_tuple__38);
42084 __pyx_codeobj__39 = (PyObject*)__Pyx_PyCode_New(12, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__38, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_smoothNodesCentroid, 64, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__39)) __PYX_ERR(0, 64, __pyx_L1_error)
42093 __pyx_tuple__40 = PyTuple_Pack(4, __pyx_n_s_elementDilationArray, __pyx_n_s_elementVolumeArray, __pyx_n_s_elementVolumeTargetArray, __pyx_n_s_nElements);
if (unlikely(!__pyx_tuple__40)) __PYX_ERR(0, 127, __pyx_L1_error)
42094 __Pyx_GOTREF(__pyx_tuple__40);
42095 __Pyx_GIVEREF(__pyx_tuple__40);
42096 __pyx_codeobj__41 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_updateDilationElements, 127, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__41)) __PYX_ERR(0, 127, __pyx_L1_error)
42105 __pyx_tuple__42 = PyTuple_Pack(4, __pyx_n_s_elementVolumeArray, __pyx_n_s_elementVolumeTargetArray, __pyx_n_s_nElements, __pyx_n_s_elementDilationArray);
if (unlikely(!__pyx_tuple__42)) __PYX_ERR(0, 136, __pyx_L1_error)
42106 __Pyx_GOTREF(__pyx_tuple__42);
42107 __Pyx_GIVEREF(__pyx_tuple__42);
42108 __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__42, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_getDilationElements, 136, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(0, 136, __pyx_L1_error)
42117 __pyx_tuple__44 = PyTuple_Pack(5, __pyx_n_s_elementDistortionArray, __pyx_n_s_J_array, __pyx_n_s_detJ_array, __pyx_n_s_nd, __pyx_n_s_nElements);
if (unlikely(!__pyx_tuple__44)) __PYX_ERR(0, 146, __pyx_L1_error)
42118 __Pyx_GOTREF(__pyx_tuple__44);
42119 __Pyx_GIVEREF(__pyx_tuple__44);
42120 __pyx_codeobj__45 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_updateDistortionElements, 146, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(0, 146, __pyx_L1_error)
42129 __pyx_tuple__46 = PyTuple_Pack(5, __pyx_n_s_J_array, __pyx_n_s_detJ_array, __pyx_n_s_nd, __pyx_n_s_nElements, __pyx_n_s_elementDistortionArray);
if (unlikely(!__pyx_tuple__46)) __PYX_ERR(0, 157, __pyx_L1_error)
42130 __Pyx_GOTREF(__pyx_tuple__46);
42131 __Pyx_GIVEREF(__pyx_tuple__46);
42132 __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__46, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_getDistortionElements, 157, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(0, 157, __pyx_L1_error)
42141 __pyx_tuple__48 = PyTuple_Pack(4, __pyx_n_s_IMRElementsArray, __pyx_n_s_nodeArray_2, __pyx_n_s_elementNodesArray, __pyx_n_s_nElements);
if (unlikely(!__pyx_tuple__48)) __PYX_ERR(0, 169, __pyx_L1_error)
42142 __Pyx_GOTREF(__pyx_tuple__48);
42143 __Pyx_GIVEREF(__pyx_tuple__48);
42144 __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_updateInverseMeanRatioTriangleEl, 169, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(0, 169, __pyx_L1_error)
42153 __pyx_tuple__50 = PyTuple_Pack(4, __pyx_n_s_nodeArray_2, __pyx_n_s_elementNodesArray, __pyx_n_s_nElements, __pyx_n_s_IMRElementsArray);
if (unlikely(!__pyx_tuple__50)) __PYX_ERR(0, 178, __pyx_L1_error)
42154 __Pyx_GOTREF(__pyx_tuple__50);
42155 __Pyx_GIVEREF(__pyx_tuple__50);
42156 __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__50, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_getInverseMeanRatioTriangleEleme, 178, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(0, 178, __pyx_L1_error)
42165 __pyx_tuple__52 = PyTuple_Pack(8, __pyx_n_s_IMRNodesArray, __pyx_n_s_nodeArray_2, __pyx_n_s_elementNodesArray, __pyx_n_s_nodeElementOffsets, __pyx_n_s_nodeElementsArray, __pyx_n_s_nNodes, __pyx_n_s_nElements, __pyx_n_s_el_average);
if (unlikely(!__pyx_tuple__52)) __PYX_ERR(0, 188, __pyx_L1_error)
42166 __Pyx_GOTREF(__pyx_tuple__52);
42167 __Pyx_GIVEREF(__pyx_tuple__52);
42168 __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(8, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_updateInverseMeanRatioTriangleNo, 188, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(0, 188, __pyx_L1_error)
42177 __pyx_tuple__54 = PyTuple_Pack(8, __pyx_n_s_nodeArray_2, __pyx_n_s_elementNodesArray, __pyx_n_s_nodeElementOffsets, __pyx_n_s_nodeElementsArray, __pyx_n_s_el_average, __pyx_n_s_nNodes, __pyx_n_s_nElements, __pyx_n_s_IMRNodesArray);
if (unlikely(!__pyx_tuple__54)) __PYX_ERR(0, 205, __pyx_L1_error)
42178 __Pyx_GOTREF(__pyx_tuple__54);
42179 __Pyx_GIVEREF(__pyx_tuple__54);
42180 __pyx_codeobj__55 = (PyObject*)__Pyx_PyCode_New(5, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_getInverseMeanRatioTriangleNodes, 205, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__55)) __PYX_ERR(0, 205, __pyx_L1_error)
42189 __pyx_tuple__56 = PyTuple_Pack(5, __pyx_n_s_node0, __pyx_n_s_nodeArray_2, __pyx_n_s_elementNodesArray, __pyx_n_s_nodeElementOffsets, __pyx_n_s_nodeElementsArray);
if (unlikely(!__pyx_tuple__56)) __PYX_ERR(0, 223, __pyx_L1_error)
42190 __Pyx_GOTREF(__pyx_tuple__56);
42191 __Pyx_GIVEREF(__pyx_tuple__56);
42192 __pyx_codeobj__57 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__56, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_getInverseMeanRatioSingleTriangl, 223, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__57)) __PYX_ERR(0, 223, __pyx_L1_error)
42201 __pyx_tuple__58 = PyTuple_Pack(9, __pyx_n_s_distortion, __pyx_n_s_dilation, __pyx_n_s_nodeArray_2, __pyx_n_s_nNodes_owned, __pyx_n_s_nodeMaterialTypes, __pyx_n_s_nodeElementOffsets, __pyx_n_s_nodeElementsArray, __pyx_n_s_elementNodesArray, __pyx_n_s_apply_directly);
if (unlikely(!__pyx_tuple__58)) __PYX_ERR(0, 234, __pyx_L1_error)
42202 __Pyx_GOTREF(__pyx_tuple__58);
42203 __Pyx_GIVEREF(__pyx_tuple__58);
42204 __pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(9, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__58, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_smoothNodesQuality, 234, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__59)) __PYX_ERR(0, 234, __pyx_L1_error)
42213 __pyx_tuple__60 = PyTuple_Pack(5, __pyx_n_s_coords, __pyx_n_s_nodeArray_2, __pyx_n_s_nodeStarOffsets, __pyx_n_s_nodeStarArray, __pyx_n_s_node);
if (unlikely(!__pyx_tuple__60)) __PYX_ERR(0, 254, __pyx_L1_error)
42214 __Pyx_GOTREF(__pyx_tuple__60);
42215 __Pyx_GIVEREF(__pyx_tuple__60);
42216 __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_getLocalNearestNode, 254, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(0, 254, __pyx_L1_error)
42225 __pyx_tuple__62 = PyTuple_Pack(4, __pyx_n_s_coords, __pyx_n_s_elementBarycentersArray, __pyx_n_s_elementNeighborsArray, __pyx_n_s_eN);
if (unlikely(!__pyx_tuple__62)) __PYX_ERR(0, 285, __pyx_L1_error)
42226 __Pyx_GOTREF(__pyx_tuple__62);
42227 __Pyx_GIVEREF(__pyx_tuple__62);
42228 __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__62, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_getLocalNearestElement, 285, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(0, 285, __pyx_L1_error)
42237 __pyx_tuple__64 = PyTuple_Pack(5, __pyx_n_s_coords, __pyx_n_s_nodeElementOffsets, __pyx_n_s_nodeElementsArray, __pyx_n_s_elementBarycentersArray, __pyx_n_s_node);
if (unlikely(!__pyx_tuple__64)) __PYX_ERR(0, 312, __pyx_L1_error)
42238 __Pyx_GOTREF(__pyx_tuple__64);
42239 __Pyx_GIVEREF(__pyx_tuple__64);
42240 __pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_getLocalNearestElementAroundNode, 312, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(0, 312, __pyx_L1_error)
42249 __pyx_tuple__66 = PyTuple_Pack(8, __pyx_n_s_coords, __pyx_n_s_starting_coords, __pyx_n_s_elementBoundaryNormalsArray, __pyx_n_s_elementBoundariesArray, __pyx_n_s_elementBoundaryBarycentersArray, __pyx_n_s_elementBoundaryElementsArray, __pyx_n_s_exteriorElementBoundariesBoolArr, __pyx_n_s_eN);
if (unlikely(!__pyx_tuple__66)) __PYX_ERR(0, 343, __pyx_L1_error)
42250 __Pyx_GOTREF(__pyx_tuple__66);
42251 __Pyx_GIVEREF(__pyx_tuple__66);
42252 __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(8, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__66, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_getLocalNearestElementIntersecti, 343, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(0, 343, __pyx_L1_error)
42261 __pyx_tuple__68 = PyTuple_Pack(8, __pyx_n_s_femSpace, __pyx_n_s_coords, __pyx_n_s_node, __pyx_n_s_patchBoundaryNodes, __pyx_n_s_checkedElements, __pyx_n_s_eOffset, __pyx_n_s_eN, __pyx_n_s_xi);
if (unlikely(!__pyx_tuple__68)) __PYX_ERR(0, 388, __pyx_L1_error)
42262 __Pyx_GOTREF(__pyx_tuple__68);
42263 __Pyx_GIVEREF(__pyx_tuple__68);
42264 __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(3, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_getLocalElement, 388, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__69)) __PYX_ERR(0, 388, __pyx_L1_error)
42273 __pyx_tuple__70 = PyTuple_Pack(7, __pyx_n_s_elementBoundaryNormalsArray_2, __pyx_n_s_nodeArray_2, __pyx_n_s_elementBoundariesArray, __pyx_n_s_elementBoundaryNodesArray, __pyx_n_s_elementBoundaryBarycentersArray, __pyx_n_s_elementBarycentersArray, __pyx_n_s_nElements);
if (unlikely(!__pyx_tuple__70)) __PYX_ERR(0, 452, __pyx_L1_error)
42274 __Pyx_GOTREF(__pyx_tuple__70);
42275 __Pyx_GIVEREF(__pyx_tuple__70);
42276 __pyx_codeobj__71 = (PyObject*)__Pyx_PyCode_New(7, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__70, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_updateElementBoundaryNormalsTria, 452, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__71)) __PYX_ERR(0, 452, __pyx_L1_error)
42285 __pyx_tuple__72 = PyTuple_Pack(7, __pyx_n_s_nodeArray_2, __pyx_n_s_elementBoundariesArray, __pyx_n_s_elementBoundaryNodesArray, __pyx_n_s_elementBoundaryBarycentersArray, __pyx_n_s_elementBarycentersArray, __pyx_n_s_elementBoundaryNormalsArray_2, __pyx_n_s_nElements);
if (unlikely(!__pyx_tuple__72)) __PYX_ERR(0, 467, __pyx_L1_error)
42286 __Pyx_GOTREF(__pyx_tuple__72);
42287 __Pyx_GIVEREF(__pyx_tuple__72);
42288 __pyx_codeobj__73 = (PyObject*)__Pyx_PyCode_New(5, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_getElementBoundaryNormalsTriangl, 467, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__73)) __PYX_ERR(0, 467, __pyx_L1_error)
42297 __pyx_tuple__74 = PyTuple_Pack(7, __pyx_n_s_elementBoundaryNormalsArray_2, __pyx_n_s_nodeArray_2, __pyx_n_s_elementBoundariesArray, __pyx_n_s_elementBoundaryNodesArray, __pyx_n_s_elementBoundaryBarycentersArray, __pyx_n_s_elementBarycentersArray, __pyx_n_s_nElements);
if (unlikely(!__pyx_tuple__74)) __PYX_ERR(0, 483, __pyx_L1_error)
42298 __Pyx_GOTREF(__pyx_tuple__74);
42299 __Pyx_GIVEREF(__pyx_tuple__74);
42300 __pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(7, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_updateElementBoundaryNormalsTetr, 483, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__75)) __PYX_ERR(0, 483, __pyx_L1_error)
42309 __pyx_tuple__76 = PyTuple_Pack(7, __pyx_n_s_nodeArray_2, __pyx_n_s_elementBoundariesArray, __pyx_n_s_elementBoundaryNodesArray, __pyx_n_s_elementBoundaryBarycentersArray, __pyx_n_s_elementBarycentersArray, __pyx_n_s_elementBoundaryNormalsArray_2, __pyx_n_s_nElements);
if (unlikely(!__pyx_tuple__76)) __PYX_ERR(0, 498, __pyx_L1_error)
42310 __Pyx_GOTREF(__pyx_tuple__76);
42311 __Pyx_GIVEREF(__pyx_tuple__76);
42312 __pyx_codeobj__77 = (PyObject*)__Pyx_PyCode_New(5, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__76, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_getElementBoundaryNormalsTetra, 498, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__77)) __PYX_ERR(0, 498, __pyx_L1_error)
42321 __pyx_tuple__78 = PyTuple_Pack(4, __pyx_n_s_elementVolumesArray_2, __pyx_n_s_elementNodesArray, __pyx_n_s_nodeArray_2, __pyx_n_s_nElements);
if (unlikely(!__pyx_tuple__78)) __PYX_ERR(0, 514, __pyx_L1_error)
42322 __Pyx_GOTREF(__pyx_tuple__78);
42323 __Pyx_GIVEREF(__pyx_tuple__78);
42324 __pyx_codeobj__79 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__78, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_updateElementVolumesTriangle, 514, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__79)) __PYX_ERR(0, 514, __pyx_L1_error)
42333 __pyx_tuple__80 = PyTuple_Pack(3, __pyx_n_s_nA, __pyx_n_s_nB, __pyx_n_s_nC);
if (unlikely(!__pyx_tuple__80)) __PYX_ERR(0, 523, __pyx_L1_error)
42334 __Pyx_GOTREF(__pyx_tuple__80);
42335 __Pyx_GIVEREF(__pyx_tuple__80);
42336 __pyx_codeobj__81 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_getElementVolumeTriangle, 523, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__81)) __PYX_ERR(0, 523, __pyx_L1_error)
42345 __pyx_tuple__82 = PyTuple_Pack(4, __pyx_n_s_elementVolumesArray_2, __pyx_n_s_elementNodesArray, __pyx_n_s_nodeArray_2, __pyx_n_s_nElements);
if (unlikely(!__pyx_tuple__82)) __PYX_ERR(0, 530, __pyx_L1_error)
42346 __Pyx_GOTREF(__pyx_tuple__82);
42347 __Pyx_GIVEREF(__pyx_tuple__82);
42348 __pyx_codeobj__83 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__82, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_updateElementVolumesTetra, 530, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__83)) __PYX_ERR(0, 530, __pyx_L1_error)
42357 __pyx_tuple__84 = PyTuple_Pack(4, __pyx_n_s_elementBarycentersArray_2, __pyx_n_s_elementNodesArray, __pyx_n_s_nodeArray_2, __pyx_n_s_nElements);
if (unlikely(!__pyx_tuple__84)) __PYX_ERR(0, 539, __pyx_L1_error)
42358 __Pyx_GOTREF(__pyx_tuple__84);
42359 __Pyx_GIVEREF(__pyx_tuple__84);
42360 __pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__84, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_updateElementBarycenters, 539, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__85)) __PYX_ERR(0, 539, __pyx_L1_error)
42369 __pyx_tuple__86 = PyTuple_Pack(5, __pyx_n_s_nodeArray_2, __pyx_n_s_nodeStarArray, __pyx_n_s_nodeStarOffsets, __pyx_n_s_nodeMaterialTypes, __pyx_n_s_nNodes);
if (unlikely(!__pyx_tuple__86)) __PYX_ERR(0, 548, __pyx_L1_error)
42370 __Pyx_GOTREF(__pyx_tuple__86);
42371 __Pyx_GIVEREF(__pyx_tuple__86);
42372 __pyx_codeobj__87 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__86, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_getCornerNodesTriangle, 548, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__87)) __PYX_ERR(0, 548, __pyx_L1_error)
42381 __pyx_tuple__88 = PyTuple_Pack(42, __pyx_n_s_args, __pyx_n_s_nNodes_owned, __pyx_n_s_nNodes_global, __pyx_n_s_nodeNumbering_subdomain2global, __pyx_n_s_nodeOffsets_subdomain_owned, __pyx_n_s_Comm, __pyx_n_s_comm, __pyx_n_s_comm_size, __pyx_n_s_my_rank, __pyx_n_s_arg_2rank, __pyx_n_s_nodes_2rank, __pyx_n_s_result, __pyx_n_s_counts_in, __pyx_n_s_displacements_in, __pyx_n_s_counts_out, __pyx_n_s_displacements_out, __pyx_n_s_arg_shape, __pyx_n_s_arg_shape_copy, __pyx_n_s_arg_shape_len, __pyx_n_s_shape_factor, __pyx_n_s_disp, __pyx_n_s_rank, __pyx_n_s_rank_recv, __pyx_n_s_ii, __pyx_n_s_ir, __pyx_n_s_iN, __pyx_n_s_node_new_rank, __pyx_n_s_new_rank, __pyx_n_s_sumtot, __pyx_n_s_nodes_2rank_values, __pyx_n_s_nodes_2doArray, __pyx_n_s_i, __pyx_n_s_node, __pyx_n_s_nodes_2rank_len, __pyx_n_s_array_size, __pyx_n_s_my_size, __pyx_n_s_arg_2rank_values, __pyx_n_s_arg_2doArray, __pyx_n_s_datatype, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr);
if (unlikely(!__pyx_tuple__88)) __PYX_ERR(0, 559, __pyx_L1_error)
42382 __Pyx_GOTREF(__pyx_tuple__88);
42383 __Pyx_GIVEREF(__pyx_tuple__88);
42384 __pyx_codeobj__89 = (PyObject*)__Pyx_PyCode_New(5, 0, 42, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_getNonOwnedNodeValues, 559, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__89)) __PYX_ERR(0, 559, __pyx_L1_error)
42393 __pyx_tuple__90 = PyTuple_Pack(5, __pyx_n_s_variable_nb_local, __pyx_n_s_rank, __pyx_n_s_nVariables_owned, __pyx_n_s_variableNumbering_subdomain2glob, __pyx_n_s_variableOffsets_subdomain_owned);
if (unlikely(!__pyx_tuple__90)) __PYX_ERR(0, 690, __pyx_L1_error)
42394 __Pyx_GOTREF(__pyx_tuple__90);
42395 __Pyx_GIVEREF(__pyx_tuple__90);
42396 __pyx_codeobj__91 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__90, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_checkOwnedVariable, 690, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__91)) __PYX_ERR(0, 690, __pyx_L1_error)
42405 __pyx_tuple__92 = PyTuple_Pack(3, __pyx_n_s_scalars, __pyx_n_s_nodeElementsArray, __pyx_n_s_nodeElementOffsets);
if (unlikely(!__pyx_tuple__92)) __PYX_ERR(0, 701, __pyx_L1_error)
42406 __Pyx_GOTREF(__pyx_tuple__92);
42407 __Pyx_GIVEREF(__pyx_tuple__92);
42408 __pyx_codeobj__93 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__92, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_pyScalarRecoveryAtNodes, 701, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__93)) __PYX_ERR(0, 701, __pyx_L1_error)
42417 __pyx_tuple__94 = PyTuple_Pack(5, __pyx_n_s_scalars, __pyx_n_s_nodeElementsArray, __pyx_n_s_nodeElementOffsets, __pyx_n_s_detJ_array, __pyx_n_s_nNodes);
if (unlikely(!__pyx_tuple__94)) __PYX_ERR(0, 708, __pyx_L1_error)
42418 __Pyx_GOTREF(__pyx_tuple__94);
42419 __Pyx_GIVEREF(__pyx_tuple__94);
42420 __pyx_codeobj__95 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__94, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_pyScalarRecoveryAtNodesWeighted, 708, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__95)) __PYX_ERR(0, 708, __pyx_L1_error)
42429 __pyx_tuple__96 = PyTuple_Pack(4, __pyx_n_s_vectors, __pyx_n_s_nodeElementsArray, __pyx_n_s_nodeElementOffsets, __pyx_n_s_nd);
if (unlikely(!__pyx_tuple__96)) __PYX_ERR(0, 719, __pyx_L1_error)
42430 __Pyx_GOTREF(__pyx_tuple__96);
42431 __Pyx_GIVEREF(__pyx_tuple__96);
42432 __pyx_codeobj__97 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__96, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_pyVectorRecoveryAtNodes, 719, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__97)) __PYX_ERR(0, 719, __pyx_L1_error)
42441 __pyx_tuple__98 = PyTuple_Pack(5, __pyx_n_s_vectors, __pyx_n_s_nodeElementsArray, __pyx_n_s_nodeElementOffsets, __pyx_n_s_detJ_array, __pyx_n_s_nd);
if (unlikely(!__pyx_tuple__98)) __PYX_ERR(0, 728, __pyx_L1_error)
42442 __Pyx_GOTREF(__pyx_tuple__98);
42443 __Pyx_GIVEREF(__pyx_tuple__98);
42444 __pyx_codeobj__99 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__98, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_proteus_mprans_MeshSmoothing_pyx, __pyx_n_s_pyVectorRecoveryAtNodesWeighted, 728, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__99)) __PYX_ERR(0, 728, __pyx_L1_error)
42453 __pyx_tuple__100 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct_or_indirect);
if (unlikely(!__pyx_tuple__100)) __PYX_ERR(2, 286, __pyx_L1_error)
42454 __Pyx_GOTREF(__pyx_tuple__100);
42455 __Pyx_GIVEREF(__pyx_tuple__100);
42464 __pyx_tuple__101 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct);
if (unlikely(!__pyx_tuple__101)) __PYX_ERR(2, 287, __pyx_L1_error)
42465 __Pyx_GOTREF(__pyx_tuple__101);
42466 __Pyx_GIVEREF(__pyx_tuple__101);
42475 __pyx_tuple__102 = PyTuple_Pack(1, __pyx_kp_s_strided_and_indirect);
if (unlikely(!__pyx_tuple__102)) __PYX_ERR(2, 288, __pyx_L1_error)
42476 __Pyx_GOTREF(__pyx_tuple__102);
42477 __Pyx_GIVEREF(__pyx_tuple__102);
42486 __pyx_tuple__103 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_direct);
if (unlikely(!__pyx_tuple__103)) __PYX_ERR(2, 291, __pyx_L1_error)
42487 __Pyx_GOTREF(__pyx_tuple__103);
42488 __Pyx_GIVEREF(__pyx_tuple__103);
42497 __pyx_tuple__104 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_indirect);
if (unlikely(!__pyx_tuple__104)) __PYX_ERR(2, 292, __pyx_L1_error)
42498 __Pyx_GOTREF(__pyx_tuple__104);
42499 __Pyx_GIVEREF(__pyx_tuple__104);
42506 __pyx_tuple__105 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result);
if (unlikely(!__pyx_tuple__105)) __PYX_ERR(2, 1, __pyx_L1_error)
42507 __Pyx_GOTREF(__pyx_tuple__105);
42508 __Pyx_GIVEREF(__pyx_tuple__105);
42509 __pyx_codeobj__106 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__105, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Enum, 1, __pyx_empty_bytes);
if (unlikely(!__pyx_codeobj__106)) __PYX_ERR(2, 1, __pyx_L1_error)
42510 __Pyx_RefNannyFinishContext();
42513 __Pyx_RefNannyFinishContext();
42517 static CYTHON_SMALL_CODE
int __Pyx_InitGlobals(
void) {
42518 if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
42519 __pyx_float_0_ = PyFloat_FromDouble(0.);
if (unlikely(!__pyx_float_0_)) __PYX_ERR(0, 1, __pyx_L1_error)
42520 __pyx_float_1_ = PyFloat_FromDouble(1.);
if (unlikely(!__pyx_float_1_)) __PYX_ERR(0, 1, __pyx_L1_error)
42521 __pyx_float_0_5 = PyFloat_FromDouble(0.5);
if (unlikely(!__pyx_float_0_5)) __PYX_ERR(0, 1, __pyx_L1_error)
42522 __pyx_int_0 = PyInt_FromLong(0);
if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error)
42523 __pyx_int_1 = PyInt_FromLong(1);
if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error)
42524 __pyx_int_2 = PyInt_FromLong(2);
if (unlikely(!__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error)
42525 __pyx_int_3 = PyInt_FromLong(3);
if (unlikely(!__pyx_int_3)) __PYX_ERR(0, 1, __pyx_L1_error)
42526 __pyx_int_4 = PyInt_FromLong(4);
if (unlikely(!__pyx_int_4)) __PYX_ERR(0, 1, __pyx_L1_error)
42527 __pyx_int_184977713 = PyInt_FromLong(184977713
L);
if (unlikely(!__pyx_int_184977713)) __PYX_ERR(0, 1, __pyx_L1_error)
42528 __pyx_int_neg_1 = PyInt_FromLong(-1);
if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error)
42534 static CYTHON_SMALL_CODE
int __Pyx_modinit_global_init_code(
void);
42535 static CYTHON_SMALL_CODE
int __Pyx_modinit_variable_export_code(
void);
42536 static CYTHON_SMALL_CODE
int __Pyx_modinit_function_export_code(
void);
42537 static CYTHON_SMALL_CODE
int __Pyx_modinit_type_init_code(
void);
42538 static CYTHON_SMALL_CODE
int __Pyx_modinit_type_import_code(
void);
42539 static CYTHON_SMALL_CODE
int __Pyx_modinit_variable_import_code(
void);
42540 static CYTHON_SMALL_CODE
int __Pyx_modinit_function_import_code(
void);
42542 static int __Pyx_modinit_global_init_code(
void) {
42543 __Pyx_RefNannyDeclarations
42544 __Pyx_RefNannySetupContext(
"__Pyx_modinit_global_init_code", 0);
42546 generic = Py_None; Py_INCREF(Py_None);
42547 strided = Py_None; Py_INCREF(Py_None);
42548 indirect = Py_None; Py_INCREF(Py_None);
42549 contiguous = Py_None; Py_INCREF(Py_None);
42550 indirect_contiguous = Py_None; Py_INCREF(Py_None);
42551 __Pyx_RefNannyFinishContext();
42555 static int __Pyx_modinit_variable_export_code(
void) {
42556 __Pyx_RefNannyDeclarations
42557 __Pyx_RefNannySetupContext(
"__Pyx_modinit_variable_export_code", 0);
42559 __Pyx_RefNannyFinishContext();
42563 static int __Pyx_modinit_function_export_code(
void) {
42564 __Pyx_RefNannyDeclarations
42565 __Pyx_RefNannySetupContext(
"__Pyx_modinit_function_export_code", 0);
42567 if (__Pyx_ExportFunction(
"cySmoothNodesLaplace", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cySmoothNodesLaplace,
"void (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int, int, struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesLaplace *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42568 if (__Pyx_ExportFunction(
"cySmoothNodesCentroid", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cySmoothNodesCentroid,
"void (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int, __Pyx_memviewslice, struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesCentroid *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42569 if (__Pyx_ExportFunction(
"cyUpdateDilationElements", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyUpdateDilationElements,
"void (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42570 if (__Pyx_ExportFunction(
"cyUpdateDistortionElements", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyUpdateDistortionElements,
"void (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42571 if (__Pyx_ExportFunction(
"cyUpdateInverseMeanRatioTriangleNodes", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyUpdateInverseMeanRatioTriangleNodes,
"void (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int, int, struct __pyx_opt_args_6mprans_13MeshSmoothing_cyUpdateInverseMeanRatioTriangleNodes *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42572 if (__Pyx_ExportFunction(
"cyUpdateInverseMeanRatioTriangleElements", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyUpdateInverseMeanRatioTriangleElements,
"void (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42573 if (__Pyx_ExportFunction(
"cyGetInverseMeanRatioSingleTriangle", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyGetInverseMeanRatioSingleTriangle,
"double (int, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, struct __pyx_opt_args_6mprans_13MeshSmoothing_cyGetInverseMeanRatioSingleTriangle *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42574 if (__Pyx_ExportFunction(
"cySmoothNodesQuality", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cySmoothNodesQuality,
"__Pyx_memviewslice (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, struct __pyx_opt_args_6mprans_13MeshSmoothing_cySmoothNodesQuality *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42575 if (__Pyx_ExportFunction(
"pyxGetLocalNearestNode", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_pyxGetLocalNearestNode,
"int (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42576 if (__Pyx_ExportFunction(
"pyxGetLocalNearestElement", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_pyxGetLocalNearestElement,
"int (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42577 if (__Pyx_ExportFunction(
"pyxGetLocalNearestElementIntersection", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_pyxGetLocalNearestElementIntersection,
"__Pyx_memviewslice (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42578 if (__Pyx_ExportFunction(
"pyxGetLocalNearestElementAroundNode", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_pyxGetLocalNearestElementAroundNode,
"int (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42579 if (__Pyx_ExportFunction(
"pyxUpdateElementBoundaryNormalsTetra", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_pyxUpdateElementBoundaryNormalsTetra,
"void (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42580 if (__Pyx_ExportFunction(
"pyxUpdateElementBoundaryNormalsTriangle", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_pyxUpdateElementBoundaryNormalsTriangle,
"void (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42581 if (__Pyx_ExportFunction(
"cyUpdateElementVolumesTriangle", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyUpdateElementVolumesTriangle,
"void (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42582 if (__Pyx_ExportFunction(
"cyUpdateElementVolumesTetra", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyUpdateElementVolumesTetra,
"void (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42583 if (__Pyx_ExportFunction(
"cyUpdateElementBarycenters", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyUpdateElementBarycenters,
"void (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42584 if (__Pyx_ExportFunction(
"cyGetCornerNodesTriangle", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyGetCornerNodesTriangle,
"PyArrayObject *(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42585 if (__Pyx_ExportFunction(
"cyCheckOwnedVariable", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyCheckOwnedVariable,
"__Pyx_memviewslice (int, int, int, __Pyx_memviewslice, __Pyx_memviewslice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42586 if (__Pyx_ExportFunction(
"cyGetGlobalVariable", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyGetGlobalVariable,
"__Pyx_memviewslice (int, int, __Pyx_memviewslice, __Pyx_memviewslice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42587 if (__Pyx_ExportFunction(
"cyGetLocalVariable", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyGetLocalVariable,
"int (int, int, int, __Pyx_memviewslice, __Pyx_memviewslice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42588 if (__Pyx_ExportFunction(
"cyScalarRecoveryAtNodes", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyScalarRecoveryAtNodes,
"__Pyx_memviewslice (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42589 if (__Pyx_ExportFunction(
"cyScalarRecoveryAtNodesWeighted", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyScalarRecoveryAtNodesWeighted,
"__Pyx_memviewslice (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42590 if (__Pyx_ExportFunction(
"cyVectorRecoveryAtNodesWeighted", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyVectorRecoveryAtNodesWeighted,
"__Pyx_memviewslice (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42591 if (__Pyx_ExportFunction(
"cyVectorRecoveryAtNodes", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyVectorRecoveryAtNodes,
"__Pyx_memviewslice (__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42592 if (__Pyx_ExportFunction(
"cyFindBoundaryDirectionTriangle", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyFindBoundaryDirectionTriangle,
"void (__Pyx_memviewslice, int, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42593 if (__Pyx_ExportFunction(
"cyFindBoundaryDirectionTetra", (
void (*)(
void))__pyx_f_6mprans_13MeshSmoothing_cyFindBoundaryDirectionTetra,
"void (__Pyx_memviewslice, int, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42594 __Pyx_RefNannyFinishContext();
42597 __Pyx_RefNannyFinishContext();
42601 static int __Pyx_modinit_type_init_code(
void) {
42602 __Pyx_RefNannyDeclarations
42603 __Pyx_RefNannySetupContext(
"__Pyx_modinit_type_init_code", 0);
42605 if (PyType_Ready(&__pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues) < 0) __PYX_ERR(0, 559, __pyx_L1_error)
42606 #if PY_VERSION_HEX < 0x030800B1 42607 __pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues.tp_print = 0;
42609 if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues.tp_dictoffset && __pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues.tp_getattro == PyObject_GenericGetAttr)) {
42610 __pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
42612 __pyx_ptype_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues = &__pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct__getNonOwnedNodeValues;
42613 if (PyType_Ready(&__pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr) < 0) __PYX_ERR(0, 625, __pyx_L1_error)
42614 #if PY_VERSION_HEX < 0x030800B1 42615 __pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr.tp_print = 0;
42617 if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr.tp_dictoffset && __pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
42618 __pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
42620 __pyx_ptype_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr = &__pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct_1_genexpr;
42621 if (PyType_Ready(&__pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr) < 0) __PYX_ERR(0, 626, __pyx_L1_error)
42622 #if PY_VERSION_HEX < 0x030800B1 42623 __pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr.tp_print = 0;
42625 if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr.tp_dictoffset && __pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
42626 __pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
42628 __pyx_ptype_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr = &__pyx_type_6mprans_13MeshSmoothing___pyx_scope_struct_2_genexpr;
42629 __pyx_vtabptr_array = &__pyx_vtable_array;
42630 __pyx_vtable_array.get_memview = (PyObject *(*)(
struct __pyx_array_obj *))__pyx_array_get_memview;
42631 if (PyType_Ready(&__pyx_type___pyx_array) < 0) __PYX_ERR(2, 105, __pyx_L1_error)
42632 #if PY_VERSION_HEX < 0x030800B1 42633 __pyx_type___pyx_array.tp_print = 0;
42635 if (__Pyx_SetVtable(__pyx_type___pyx_array.tp_dict, __pyx_vtabptr_array) < 0) __PYX_ERR(2, 105, __pyx_L1_error)
42636 if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_array) < 0) __PYX_ERR(2, 105, __pyx_L1_error)
42637 __pyx_array_type = &__pyx_type___pyx_array;
42638 if (PyType_Ready(&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(2, 279, __pyx_L1_error)
42639 #if PY_VERSION_HEX < 0x030800B1 42640 __pyx_type___pyx_MemviewEnum.tp_print = 0;
42642 if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_MemviewEnum.tp_dictoffset && __pyx_type___pyx_MemviewEnum.tp_getattro == PyObject_GenericGetAttr)) {
42643 __pyx_type___pyx_MemviewEnum.tp_getattro = __Pyx_PyObject_GenericGetAttr;
42645 if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(2, 279, __pyx_L1_error)
42646 __pyx_MemviewEnum_type = &__pyx_type___pyx_MemviewEnum;
42647 __pyx_vtabptr_memoryview = &__pyx_vtable_memoryview;
42648 __pyx_vtable_memoryview.get_item_pointer = (
char *(*)(
struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_get_item_pointer;
42649 __pyx_vtable_memoryview.is_slice = (PyObject *(*)(
struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_is_slice;
42650 __pyx_vtable_memoryview.setitem_slice_assignment = (PyObject *(*)(
struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_slice_assignment;
42651 __pyx_vtable_memoryview.setitem_slice_assign_scalar = (PyObject *(*)(
struct __pyx_memoryview_obj *,
struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_setitem_slice_assign_scalar;
42652 __pyx_vtable_memoryview.setitem_indexed = (PyObject *(*)(
struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_indexed;
42653 __pyx_vtable_memoryview.convert_item_to_object = (PyObject *(*)(
struct __pyx_memoryview_obj *,
char *))__pyx_memoryview_convert_item_to_object;
42654 __pyx_vtable_memoryview.assign_item_from_object = (PyObject *(*)(
struct __pyx_memoryview_obj *,
char *, PyObject *))__pyx_memoryview_assign_item_from_object;
42655 if (PyType_Ready(&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(2, 330, __pyx_L1_error)
42656 #if PY_VERSION_HEX < 0x030800B1 42657 __pyx_type___pyx_memoryview.tp_print = 0;
42659 if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryview.tp_dictoffset && __pyx_type___pyx_memoryview.tp_getattro == PyObject_GenericGetAttr)) {
42660 __pyx_type___pyx_memoryview.tp_getattro = __Pyx_PyObject_GenericGetAttr;
42662 if (__Pyx_SetVtable(__pyx_type___pyx_memoryview.tp_dict, __pyx_vtabptr_memoryview) < 0) __PYX_ERR(2, 330, __pyx_L1_error)
42663 if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(2, 330, __pyx_L1_error)
42664 __pyx_memoryview_type = &__pyx_type___pyx_memoryview;
42665 __pyx_vtabptr__memoryviewslice = &__pyx_vtable__memoryviewslice;
42666 __pyx_vtable__memoryviewslice.__pyx_base = *__pyx_vtabptr_memoryview;
42667 __pyx_vtable__memoryviewslice.__pyx_base.convert_item_to_object = (PyObject *(*)(
struct __pyx_memoryview_obj *,
char *))__pyx_memoryviewslice_convert_item_to_object;
42668 __pyx_vtable__memoryviewslice.__pyx_base.assign_item_from_object = (PyObject *(*)(
struct __pyx_memoryview_obj *,
char *, PyObject *))__pyx_memoryviewslice_assign_item_from_object;
42669 __pyx_type___pyx_memoryviewslice.tp_base = __pyx_memoryview_type;
42670 if (PyType_Ready(&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(2, 965, __pyx_L1_error)
42671 #if PY_VERSION_HEX < 0x030800B1 42672 __pyx_type___pyx_memoryviewslice.tp_print = 0;
42674 if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryviewslice.tp_dictoffset && __pyx_type___pyx_memoryviewslice.tp_getattro == PyObject_GenericGetAttr)) {
42675 __pyx_type___pyx_memoryviewslice.tp_getattro = __Pyx_PyObject_GenericGetAttr;
42677 if (__Pyx_SetVtable(__pyx_type___pyx_memoryviewslice.tp_dict, __pyx_vtabptr__memoryviewslice) < 0) __PYX_ERR(2, 965, __pyx_L1_error)
42678 if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(2, 965, __pyx_L1_error)
42679 __pyx_memoryviewslice_type = &__pyx_type___pyx_memoryviewslice;
42680 __Pyx_RefNannyFinishContext();
42683 __Pyx_RefNannyFinishContext();
42687 static int __Pyx_modinit_type_import_code(
void) {
42688 __Pyx_RefNannyDeclarations
42689 PyObject *__pyx_t_1 = NULL;
42690 __Pyx_RefNannySetupContext(
"__Pyx_modinit_type_import_code", 0);
42692 __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME);
if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error)
42693 __Pyx_GOTREF(__pyx_t_1);
42694 __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME,
"type",
42695 #
if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
42696 sizeof(PyTypeObject),
42698 sizeof(PyHeapTypeObject),
42700 __Pyx_ImportType_CheckSize_Warn);
42701 if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error)
42702 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42703 __pyx_t_1 = PyImport_ImportModule(
"numpy");
if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 206, __pyx_L1_error)
42704 __Pyx_GOTREF(__pyx_t_1);
42705 __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1,
"numpy",
"dtype",
sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore);
42706 if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(1, 206, __pyx_L1_error)
42707 __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1,
"numpy",
"flatiter",
sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn);
42708 if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(1, 229, __pyx_L1_error)
42709 __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1,
"numpy",
"broadcast",
sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn);
42710 if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(1, 233, __pyx_L1_error)
42711 __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1,
"numpy",
"ndarray",
sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore);
42712 if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(1, 242, __pyx_L1_error)
42713 __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1,
"numpy",
"ufunc",
sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn);
42714 if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(1, 918, __pyx_L1_error)
42715 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42716 __Pyx_RefNannyFinishContext();
42719 __Pyx_XDECREF(__pyx_t_1);
42720 __Pyx_RefNannyFinishContext();
42724 static int __Pyx_modinit_variable_import_code(
void) {
42725 __Pyx_RefNannyDeclarations
42726 __Pyx_RefNannySetupContext(
"__Pyx_modinit_variable_import_code", 0);
42728 __Pyx_RefNannyFinishContext();
42732 static int __Pyx_modinit_function_import_code(
void) {
42733 __Pyx_RefNannyDeclarations
42734 __Pyx_RefNannySetupContext(
"__Pyx_modinit_function_import_code", 0);
42736 __Pyx_RefNannyFinishContext();
42741 #if PY_MAJOR_VERSION < 3 42742 #ifdef CYTHON_NO_PYINIT_EXPORT 42743 #define __Pyx_PyMODINIT_FUNC void 42745 #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC 42748 #ifdef CYTHON_NO_PYINIT_EXPORT 42749 #define __Pyx_PyMODINIT_FUNC PyObject * 42751 #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC 42756 #if PY_MAJOR_VERSION < 3 42757 __Pyx_PyMODINIT_FUNC initMeshSmoothing(
void) CYTHON_SMALL_CODE;
42758 __Pyx_PyMODINIT_FUNC initMeshSmoothing(
void)
42760 __Pyx_PyMODINIT_FUNC PyInit_MeshSmoothing(
void) CYTHON_SMALL_CODE;
42761 __Pyx_PyMODINIT_FUNC PyInit_MeshSmoothing(
void)
42762 #if CYTHON_PEP489_MULTI_PHASE_INIT 42764 return PyModuleDef_Init(&__pyx_moduledef);
42766 static CYTHON_SMALL_CODE
int __Pyx_check_single_interpreter(
void) {
42767 #if PY_VERSION_HEX >= 0x030700A1 42768 static PY_INT64_T main_interpreter_id = -1;
42769 PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
42770 if (main_interpreter_id == -1) {
42771 main_interpreter_id = current_id;
42772 return (unlikely(current_id == -1)) ? -1 : 0;
42773 }
else if (unlikely(main_interpreter_id != current_id))
42775 static PyInterpreterState *main_interpreter = NULL;
42776 PyInterpreterState *current_interpreter = PyThreadState_Get()->interp;
42777 if (!main_interpreter) {
42778 main_interpreter = current_interpreter;
42779 }
else if (unlikely(main_interpreter != current_interpreter))
42784 "Interpreter change detected - this module can only be loaded into one interpreter per process.");
42789 static CYTHON_SMALL_CODE
int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict,
const char* from_name,
const char* to_name,
int allow_none) {
42790 PyObject *value = PyObject_GetAttrString(spec, from_name);
42792 if (likely(value)) {
42793 if (allow_none || value != Py_None) {
42794 result = PyDict_SetItemString(moddict, to_name, value);
42797 }
else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
42804 static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) {
42805 PyObject *module = NULL, *moddict, *modname;
42806 if (__Pyx_check_single_interpreter())
42809 return __Pyx_NewRef(__pyx_m);
42810 modname = PyObject_GetAttrString(spec,
"name");
42811 if (unlikely(!modname))
goto bad;
42812 module = PyModule_NewObject(modname);
42813 Py_DECREF(modname);
42814 if (unlikely(!module))
goto bad;
42815 moddict = PyModule_GetDict(module);
42816 if (unlikely(!moddict))
goto bad;
42817 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict,
"loader",
"__loader__", 1) < 0))
goto bad;
42818 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict,
"origin",
"__file__", 1) < 0))
goto bad;
42819 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict,
"parent",
"__package__", 1) < 0))
goto bad;
42820 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict,
"submodule_search_locations",
"__path__", 0) < 0))
goto bad;
42823 Py_XDECREF(module);
42828 static CYTHON_SMALL_CODE
int __pyx_pymod_exec_MeshSmoothing(PyObject *__pyx_pyinit_module)
42832 PyObject *__pyx_t_1 = NULL;
42833 PyObject *__pyx_t_2 = NULL;
42834 __Pyx_memviewslice __pyx_t_3 = { 0, 0, { 0 }, { 0 }, { 0 } };
42835 static PyThread_type_lock __pyx_t_4[8];
42836 __Pyx_RefNannyDeclarations
42837 #if CYTHON_PEP489_MULTI_PHASE_INIT 42839 if (__pyx_m == __pyx_pyinit_module)
return 0;
42840 PyErr_SetString(PyExc_RuntimeError,
"Module 'MeshSmoothing' has already been imported. Re-initialisation is not supported.");
42843 #elif PY_MAJOR_VERSION >= 3 42844 if (__pyx_m)
return __Pyx_NewRef(__pyx_m);
42846 #if CYTHON_REFNANNY 42847 __Pyx_RefNanny = __Pyx_RefNannyImportAPI(
"refnanny");
42848 if (!__Pyx_RefNanny) {
42850 __Pyx_RefNanny = __Pyx_RefNannyImportAPI(
"Cython.Runtime.refnanny");
42851 if (!__Pyx_RefNanny)
42852 Py_FatalError(
"failed to import 'refnanny' module");
42855 __Pyx_RefNannySetupContext(
"__Pyx_PyMODINIT_FUNC PyInit_MeshSmoothing(void)", 0);
42856 if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42857 #ifdef __Pxy_PyFrame_Initialize_Offsets 42858 __Pxy_PyFrame_Initialize_Offsets();
42860 __pyx_empty_tuple = PyTuple_New(0);
if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
42861 __pyx_empty_bytes = PyBytes_FromStringAndSize(
"", 0);
if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
42862 __pyx_empty_unicode = PyUnicode_FromStringAndSize(
"", 0);
if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
42863 #ifdef __Pyx_CyFunction_USED 42864 if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42866 #ifdef __Pyx_FusedFunction_USED 42867 if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42869 #ifdef __Pyx_Coroutine_USED 42870 if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42872 #ifdef __Pyx_Generator_USED 42873 if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42875 #ifdef __Pyx_AsyncGen_USED 42876 if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42878 #ifdef __Pyx_StopAsyncIteration_USED 42879 if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42883 #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS 42885 PyEval_InitThreads();
42889 #if CYTHON_PEP489_MULTI_PHASE_INIT 42890 __pyx_m = __pyx_pyinit_module;
42891 Py_INCREF(__pyx_m);
42893 #if PY_MAJOR_VERSION < 3 42894 __pyx_m = Py_InitModule4(
"MeshSmoothing", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
42896 __pyx_m = PyModule_Create(&__pyx_moduledef);
42898 if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
42900 __pyx_d = PyModule_GetDict(__pyx_m);
if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
42901 Py_INCREF(__pyx_d);
42902 __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME);
if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
42903 Py_INCREF(__pyx_b);
42904 __pyx_cython_runtime = PyImport_AddModule((
char *)
"cython_runtime");
if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
42905 Py_INCREF(__pyx_cython_runtime);
42906 if (PyObject_SetAttrString(__pyx_m,
"__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
42908 if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42909 #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) 42910 if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42912 if (__pyx_module_is_main_mprans__MeshSmoothing) {
42913 if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42915 #if PY_MAJOR_VERSION >= 3 42917 PyObject *modules = PyImport_GetModuleDict();
if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
42918 if (!PyDict_GetItemString(modules,
"mprans.MeshSmoothing")) {
42919 if (unlikely(PyDict_SetItemString(modules,
"mprans.MeshSmoothing", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
42924 if (__Pyx_InitCachedBuiltins() < 0)
goto __pyx_L1_error;
42926 if (__Pyx_InitCachedConstants() < 0)
goto __pyx_L1_error;
42928 (void)__Pyx_modinit_global_init_code();
42929 (void)__Pyx_modinit_variable_export_code();
42930 if (unlikely(__Pyx_modinit_function_export_code() != 0))
goto __pyx_L1_error;
42931 if (unlikely(__Pyx_modinit_type_init_code() != 0))
goto __pyx_L1_error;
42932 if (unlikely(__Pyx_modinit_type_import_code() != 0))
goto __pyx_L1_error;
42933 (void)__Pyx_modinit_variable_import_code();
42934 (void)__Pyx_modinit_function_import_code();
42936 #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) 42937 if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
42947 __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, -1);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error)
42948 __Pyx_GOTREF(__pyx_t_1);
42949 if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 4, __pyx_L1_error)
42950 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42959 __pyx_t_1 = PyList_New(1);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error)
42960 __Pyx_GOTREF(__pyx_t_1);
42961 __Pyx_INCREF(__pyx_n_s_MPI);
42962 __Pyx_GIVEREF(__pyx_n_s_MPI);
42963 PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_MPI);
42964 __pyx_t_2 = __Pyx_Import(__pyx_n_s_mpi4py, __pyx_t_1, -1);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error)
42965 __Pyx_GOTREF(__pyx_t_2);
42966 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42967 __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_MPI);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error)
42968 __Pyx_GOTREF(__pyx_t_1);
42969 if (PyDict_SetItem(__pyx_d, __pyx_n_s_MPI, __pyx_t_1) < 0) __PYX_ERR(0, 8, __pyx_L1_error)
42970 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
42971 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42980 __pyx_t_2 = PyList_New(1);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error)
42981 __Pyx_GOTREF(__pyx_t_2);
42982 __Pyx_INCREF(__pyx_n_s_logEvent);
42983 __Pyx_GIVEREF(__pyx_n_s_logEvent);
42984 PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_logEvent);
42985 __pyx_t_1 = __Pyx_Import(__pyx_n_s_proteus_Profiling, __pyx_t_2, -1);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error)
42986 __Pyx_GOTREF(__pyx_t_1);
42987 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42988 __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_logEvent);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error)
42989 __Pyx_GOTREF(__pyx_t_2);
42990 if (PyDict_SetItem(__pyx_d, __pyx_n_s_logEvent, __pyx_t_2) < 0) __PYX_ERR(0, 9, __pyx_L1_error)
42991 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
42992 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43001 __pyx_t_3 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(Py_None, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_3.memview)) __PYX_ERR(0, 19, __pyx_L1_error)
43002 __pyx_k_ = __pyx_t_3;
43003 __pyx_t_3.memview = NULL;
43004 __pyx_t_3.data = NULL;
43013 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_1smoothNodesLaplace, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11, __pyx_L1_error)
43014 __Pyx_GOTREF(__pyx_t_1);
43015 if (PyDict_SetItem(__pyx_d, __pyx_n_s_smoothNodesLaplace, __pyx_t_1) < 0) __PYX_ERR(0, 11, __pyx_L1_error)
43016 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43025 __pyx_t_3 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(Py_None, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_3.memview)) __PYX_ERR(0, 74, __pyx_L1_error)
43026 __pyx_k__2 = __pyx_t_3;
43027 __pyx_t_3.memview = NULL;
43028 __pyx_t_3.data = NULL;
43037 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_3smoothNodesCentroid, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error)
43038 __Pyx_GOTREF(__pyx_t_1);
43039 if (PyDict_SetItem(__pyx_d, __pyx_n_s_smoothNodesCentroid, __pyx_t_1) < 0) __PYX_ERR(0, 64, __pyx_L1_error)
43040 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43049 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_5updateDilationElements, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 127, __pyx_L1_error)
43050 __Pyx_GOTREF(__pyx_t_1);
43051 if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateDilationElements, __pyx_t_1) < 0) __PYX_ERR(0, 127, __pyx_L1_error)
43052 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43061 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_7getDilationElements, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 136, __pyx_L1_error)
43062 __Pyx_GOTREF(__pyx_t_1);
43063 if (PyDict_SetItem(__pyx_d, __pyx_n_s_getDilationElements, __pyx_t_1) < 0) __PYX_ERR(0, 136, __pyx_L1_error)
43064 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43073 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_9updateDistortionElements, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 146, __pyx_L1_error)
43074 __Pyx_GOTREF(__pyx_t_1);
43075 if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateDistortionElements, __pyx_t_1) < 0) __PYX_ERR(0, 146, __pyx_L1_error)
43076 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43085 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_11getDistortionElements, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 157, __pyx_L1_error)
43086 __Pyx_GOTREF(__pyx_t_1);
43087 if (PyDict_SetItem(__pyx_d, __pyx_n_s_getDistortionElements, __pyx_t_1) < 0) __PYX_ERR(0, 157, __pyx_L1_error)
43088 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43097 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_13updateInverseMeanRatioTriangleElements, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 169, __pyx_L1_error)
43098 __Pyx_GOTREF(__pyx_t_1);
43099 if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateInverseMeanRatioTriangleEl, __pyx_t_1) < 0) __PYX_ERR(0, 169, __pyx_L1_error)
43100 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43109 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_15getInverseMeanRatioTriangleElements, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 178, __pyx_L1_error)
43110 __Pyx_GOTREF(__pyx_t_1);
43111 if (PyDict_SetItem(__pyx_d, __pyx_n_s_getInverseMeanRatioTriangleEleme, __pyx_t_1) < 0) __PYX_ERR(0, 178, __pyx_L1_error)
43112 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43121 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_17updateInverseMeanRatioTriangleNodes, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 188, __pyx_L1_error)
43122 __Pyx_GOTREF(__pyx_t_1);
43123 if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateInverseMeanRatioTriangleNo, __pyx_t_1) < 0) __PYX_ERR(0, 188, __pyx_L1_error)
43124 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43133 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_19getInverseMeanRatioTriangleNodes, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error)
43134 __Pyx_GOTREF(__pyx_t_1);
43135 if (PyDict_SetItem(__pyx_d, __pyx_n_s_getInverseMeanRatioTriangleNodes, __pyx_t_1) < 0) __PYX_ERR(0, 205, __pyx_L1_error)
43136 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43145 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_21getInverseMeanRatioSingleTriangle, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 223, __pyx_L1_error)
43146 __Pyx_GOTREF(__pyx_t_1);
43147 if (PyDict_SetItem(__pyx_d, __pyx_n_s_getInverseMeanRatioSingleTriangl, __pyx_t_1) < 0) __PYX_ERR(0, 223, __pyx_L1_error)
43148 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43157 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_23smoothNodesQuality, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error)
43158 __Pyx_GOTREF(__pyx_t_1);
43159 if (PyDict_SetItem(__pyx_d, __pyx_n_s_smoothNodesQuality, __pyx_t_1) < 0) __PYX_ERR(0, 234, __pyx_L1_error)
43160 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43169 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_25getLocalNearestNode, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 254, __pyx_L1_error)
43170 __Pyx_GOTREF(__pyx_t_1);
43171 if (PyDict_SetItem(__pyx_d, __pyx_n_s_getLocalNearestNode, __pyx_t_1) < 0) __PYX_ERR(0, 254, __pyx_L1_error)
43172 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43181 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_27getLocalNearestElement, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 285, __pyx_L1_error)
43182 __Pyx_GOTREF(__pyx_t_1);
43183 if (PyDict_SetItem(__pyx_d, __pyx_n_s_getLocalNearestElement, __pyx_t_1) < 0) __PYX_ERR(0, 285, __pyx_L1_error)
43184 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43193 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_29getLocalNearestElementAroundNode, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 312, __pyx_L1_error)
43194 __Pyx_GOTREF(__pyx_t_1);
43195 if (PyDict_SetItem(__pyx_d, __pyx_n_s_getLocalNearestElementAroundNode, __pyx_t_1) < 0) __PYX_ERR(0, 312, __pyx_L1_error)
43196 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43205 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_31getLocalNearestElementIntersection, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 343, __pyx_L1_error)
43206 __Pyx_GOTREF(__pyx_t_1);
43207 if (PyDict_SetItem(__pyx_d, __pyx_n_s_getLocalNearestElementIntersecti, __pyx_t_1) < 0) __PYX_ERR(0, 343, __pyx_L1_error)
43208 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43217 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_33getLocalElement, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 388, __pyx_L1_error)
43218 __Pyx_GOTREF(__pyx_t_1);
43219 if (PyDict_SetItem(__pyx_d, __pyx_n_s_getLocalElement, __pyx_t_1) < 0) __PYX_ERR(0, 388, __pyx_L1_error)
43220 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43229 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_35updateElementBoundaryNormalsTriangle, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 452, __pyx_L1_error)
43230 __Pyx_GOTREF(__pyx_t_1);
43231 if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateElementBoundaryNormalsTria, __pyx_t_1) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
43232 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43241 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_37getElementBoundaryNormalsTriangle, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 467, __pyx_L1_error)
43242 __Pyx_GOTREF(__pyx_t_1);
43243 if (PyDict_SetItem(__pyx_d, __pyx_n_s_getElementBoundaryNormalsTriangl, __pyx_t_1) < 0) __PYX_ERR(0, 467, __pyx_L1_error)
43244 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43253 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_39updateElementBoundaryNormalsTetra, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 483, __pyx_L1_error)
43254 __Pyx_GOTREF(__pyx_t_1);
43255 if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateElementBoundaryNormalsTetr, __pyx_t_1) < 0) __PYX_ERR(0, 483, __pyx_L1_error)
43256 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43265 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_41getElementBoundaryNormalsTetra, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 498, __pyx_L1_error)
43266 __Pyx_GOTREF(__pyx_t_1);
43267 if (PyDict_SetItem(__pyx_d, __pyx_n_s_getElementBoundaryNormalsTetra, __pyx_t_1) < 0) __PYX_ERR(0, 498, __pyx_L1_error)
43268 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43277 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_43updateElementVolumesTriangle, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 514, __pyx_L1_error)
43278 __Pyx_GOTREF(__pyx_t_1);
43279 if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateElementVolumesTriangle, __pyx_t_1) < 0) __PYX_ERR(0, 514, __pyx_L1_error)
43280 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43289 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_45getElementVolumeTriangle, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 523, __pyx_L1_error)
43290 __Pyx_GOTREF(__pyx_t_1);
43291 if (PyDict_SetItem(__pyx_d, __pyx_n_s_getElementVolumeTriangle, __pyx_t_1) < 0) __PYX_ERR(0, 523, __pyx_L1_error)
43292 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43301 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_47updateElementVolumesTetra, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 530, __pyx_L1_error)
43302 __Pyx_GOTREF(__pyx_t_1);
43303 if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateElementVolumesTetra, __pyx_t_1) < 0) __PYX_ERR(0, 530, __pyx_L1_error)
43304 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43313 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_49updateElementBarycenters, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 539, __pyx_L1_error)
43314 __Pyx_GOTREF(__pyx_t_1);
43315 if (PyDict_SetItem(__pyx_d, __pyx_n_s_updateElementBarycenters, __pyx_t_1) < 0) __PYX_ERR(0, 539, __pyx_L1_error)
43316 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43325 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_51getCornerNodesTriangle, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 548, __pyx_L1_error)
43326 __Pyx_GOTREF(__pyx_t_1);
43327 if (PyDict_SetItem(__pyx_d, __pyx_n_s_getCornerNodesTriangle, __pyx_t_1) < 0) __PYX_ERR(0, 548, __pyx_L1_error)
43328 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43337 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_53getNonOwnedNodeValues, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 559, __pyx_L1_error)
43338 __Pyx_GOTREF(__pyx_t_1);
43339 if (PyDict_SetItem(__pyx_d, __pyx_n_s_getNonOwnedNodeValues, __pyx_t_1) < 0) __PYX_ERR(0, 559, __pyx_L1_error)
43340 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43349 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_55checkOwnedVariable, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 690, __pyx_L1_error)
43350 __Pyx_GOTREF(__pyx_t_1);
43351 if (PyDict_SetItem(__pyx_d, __pyx_n_s_checkOwnedVariable, __pyx_t_1) < 0) __PYX_ERR(0, 690, __pyx_L1_error)
43352 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43361 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_57pyScalarRecoveryAtNodes, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 701, __pyx_L1_error)
43362 __Pyx_GOTREF(__pyx_t_1);
43363 if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyScalarRecoveryAtNodes, __pyx_t_1) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
43364 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43373 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_59pyScalarRecoveryAtNodesWeighted, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 708, __pyx_L1_error)
43374 __Pyx_GOTREF(__pyx_t_1);
43375 if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyScalarRecoveryAtNodesWeighted, __pyx_t_1) < 0) __PYX_ERR(0, 708, __pyx_L1_error)
43376 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43385 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_61pyVectorRecoveryAtNodes, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 719, __pyx_L1_error)
43386 __Pyx_GOTREF(__pyx_t_1);
43387 if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyVectorRecoveryAtNodes, __pyx_t_1) < 0) __PYX_ERR(0, 719, __pyx_L1_error)
43388 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43397 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_6mprans_13MeshSmoothing_63pyVectorRecoveryAtNodesWeighted, NULL, __pyx_n_s_mprans_MeshSmoothing);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 728, __pyx_L1_error)
43398 __Pyx_GOTREF(__pyx_t_1);
43399 if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyVectorRecoveryAtNodesWeighted, __pyx_t_1) < 0) __PYX_ERR(0, 728, __pyx_L1_error)
43400 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43409 __pyx_t_3 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(Py_None, PyBUF_WRITABLE);
if (unlikely(!__pyx_t_3.memview)) __PYX_ERR(0, 749, __pyx_L1_error)
43410 __pyx_k__5 = __pyx_t_3;
43411 __pyx_t_3.memview = NULL;
43412 __pyx_t_3.data = NULL;
43419 __pyx_t_1 = __Pyx_PyDict_NewPresized(0);
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
43420 __Pyx_GOTREF(__pyx_t_1);
43421 if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
43422 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43431 __pyx_t_1 = __pyx_capsule_create(((
void *)(&__pyx_array_getbuffer)), ((
char *)
"getbuffer(obj, view, flags)"));
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 209, __pyx_L1_error)
43432 __Pyx_GOTREF(__pyx_t_1);
43433 if (PyDict_SetItem((PyObject *)__pyx_array_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_1) < 0) __PYX_ERR(2, 209, __pyx_L1_error)
43434 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43435 PyType_Modified(__pyx_array_type);
43444 __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__100, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 286, __pyx_L1_error)
43445 __Pyx_GOTREF(__pyx_t_1);
43446 __Pyx_XGOTREF(
generic);
43447 __Pyx_DECREF_SET(
generic, __pyx_t_1);
43448 __Pyx_GIVEREF(__pyx_t_1);
43458 __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__101, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 287, __pyx_L1_error)
43459 __Pyx_GOTREF(__pyx_t_1);
43460 __Pyx_XGOTREF(strided);
43461 __Pyx_DECREF_SET(strided, __pyx_t_1);
43462 __Pyx_GIVEREF(__pyx_t_1);
43472 __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__102, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 288, __pyx_L1_error)
43473 __Pyx_GOTREF(__pyx_t_1);
43474 __Pyx_XGOTREF(indirect);
43475 __Pyx_DECREF_SET(indirect, __pyx_t_1);
43476 __Pyx_GIVEREF(__pyx_t_1);
43486 __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__103, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 291, __pyx_L1_error)
43487 __Pyx_GOTREF(__pyx_t_1);
43488 __Pyx_XGOTREF(contiguous);
43489 __Pyx_DECREF_SET(contiguous, __pyx_t_1);
43490 __Pyx_GIVEREF(__pyx_t_1);
43500 __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__104, NULL);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 292, __pyx_L1_error)
43501 __Pyx_GOTREF(__pyx_t_1);
43502 __Pyx_XGOTREF(indirect_contiguous);
43503 __Pyx_DECREF_SET(indirect_contiguous, __pyx_t_1);
43504 __Pyx_GIVEREF(__pyx_t_1);
43514 __pyx_memoryview_thread_locks_used = 0;
43523 __pyx_t_4[0] = PyThread_allocate_lock();
43524 __pyx_t_4[1] = PyThread_allocate_lock();
43525 __pyx_t_4[2] = PyThread_allocate_lock();
43526 __pyx_t_4[3] = PyThread_allocate_lock();
43527 __pyx_t_4[4] = PyThread_allocate_lock();
43528 __pyx_t_4[5] = PyThread_allocate_lock();
43529 __pyx_t_4[6] = PyThread_allocate_lock();
43530 __pyx_t_4[7] = PyThread_allocate_lock();
43531 memcpy(&(__pyx_memoryview_thread_locks[0]), __pyx_t_4,
sizeof(__pyx_memoryview_thread_locks[0]) * (8));
43540 __pyx_t_1 = __pyx_capsule_create(((
void *)(&__pyx_memoryview_getbuffer)), ((
char *)
"getbuffer(obj, view, flags)"));
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 549, __pyx_L1_error)
43541 __Pyx_GOTREF(__pyx_t_1);
43542 if (PyDict_SetItem((PyObject *)__pyx_memoryview_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_1) < 0) __PYX_ERR(2, 549, __pyx_L1_error)
43543 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43544 PyType_Modified(__pyx_memoryview_type);
43553 __pyx_t_1 = __pyx_capsule_create(((
void *)(&__pyx_memoryview_getbuffer)), ((
char *)
"getbuffer(obj, view, flags)"));
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 995, __pyx_L1_error)
43554 __Pyx_GOTREF(__pyx_t_1);
43555 if (PyDict_SetItem((PyObject *)__pyx_memoryviewslice_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_1) < 0) __PYX_ERR(2, 995, __pyx_L1_error)
43556 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43557 PyType_Modified(__pyx_memoryviewslice_type);
43564 __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum, NULL, __pyx_n_s_View_MemoryView);
if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error)
43565 __Pyx_GOTREF(__pyx_t_1);
43566 if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Enum, __pyx_t_1) < 0) __PYX_ERR(2, 1, __pyx_L1_error)
43567 __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
43581 __Pyx_XDECREF(__pyx_t_1);
43582 __Pyx_XDECREF(__pyx_t_2);
43583 __PYX_XDEC_MEMVIEW(&__pyx_t_3, 1);
43586 __Pyx_AddTraceback(
"init mprans.MeshSmoothing", __pyx_clineno, __pyx_lineno, __pyx_filename);
43589 }
else if (!PyErr_Occurred()) {
43590 PyErr_SetString(PyExc_ImportError,
"init mprans.MeshSmoothing");
43593 __Pyx_RefNannyFinishContext();
43594 #if CYTHON_PEP489_MULTI_PHASE_INIT 43595 return (__pyx_m != NULL) ? 0 : -1;
43596 #elif PY_MAJOR_VERSION >= 3 43605 #if CYTHON_REFNANNY 43606 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(
const char *modname) {
43607 PyObject *m = NULL, *p = NULL;
43609 m = PyImport_ImportModule(modname);
43611 p = PyObject_GetAttrString(m,
"RefNannyAPI");
43613 r = PyLong_AsVoidPtr(p);
43617 return (__Pyx_RefNannyAPIStruct *)
r;
43622 #if CYTHON_USE_TYPE_SLOTS 43623 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
43624 PyTypeObject* tp = Py_TYPE(obj);
43625 if (likely(tp->tp_getattro))
43626 return tp->tp_getattro(obj, attr_name);
43627 #if PY_MAJOR_VERSION < 3 43628 if (likely(tp->tp_getattr))
43629 return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
43631 return PyObject_GetAttr(obj, attr_name);
43636 static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
43637 PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
43638 if (unlikely(!result)) {
43639 PyErr_Format(PyExc_NameError,
43640 #
if PY_MAJOR_VERSION >= 3
43641 "name '%U' is not defined", name);
43643 "name '%.200s' is not defined", PyString_AS_STRING(name));
43650 static void __Pyx_RaiseArgtupleInvalid(
43651 const char* func_name,
43653 Py_ssize_t num_min,
43654 Py_ssize_t num_max,
43655 Py_ssize_t num_found)
43657 Py_ssize_t num_expected;
43658 const char *more_or_less;
43659 if (num_found < num_min) {
43660 num_expected = num_min;
43661 more_or_less =
"at least";
43663 num_expected = num_max;
43664 more_or_less =
"at most";
43667 more_or_less =
"exactly";
43669 PyErr_Format(PyExc_TypeError,
43670 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T
"d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T
"d given)",
43671 func_name, more_or_less, num_expected,
43672 (num_expected == 1) ?
"" :
"s", num_found);
43676 static void __Pyx_RaiseDoubleKeywordsError(
43677 const char* func_name,
43680 PyErr_Format(PyExc_TypeError,
43681 #
if PY_MAJOR_VERSION >= 3
43682 "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
43684 "%s() got multiple values for keyword argument '%s'", func_name,
43685 PyString_AsString(kw_name));
43690 static int __Pyx_ParseOptionalKeywords(
43692 PyObject **argnames[],
43694 PyObject *values[],
43695 Py_ssize_t num_pos_args,
43696 const char* function_name)
43698 PyObject *key = 0, *value = 0;
43699 Py_ssize_t
pos = 0;
43701 PyObject*** first_kw_arg = argnames + num_pos_args;
43702 while (PyDict_Next(kwds, &pos, &key, &value)) {
43703 name = first_kw_arg;
43704 while (*name && (**name != key)) name++;
43706 values[name-argnames] = value;
43709 name = first_kw_arg;
43710 #if PY_MAJOR_VERSION < 3 43711 if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) {
43713 if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
43714 && _PyString_Eq(**name, key)) {
43715 values[name-argnames] = value;
43720 if (*name)
continue;
43722 PyObject*** argname = argnames;
43723 while (argname != first_kw_arg) {
43724 if ((**argname == key) || (
43725 (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
43726 && _PyString_Eq(**argname, key))) {
43727 goto arg_passed_twice;
43734 if (likely(PyUnicode_Check(key))) {
43736 int cmp = (**name == key) ? 0 :
43737 #
if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
43738 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
43740 PyUnicode_Compare(**name, key);
43741 if (cmp < 0 && unlikely(PyErr_Occurred()))
goto bad;
43743 values[name-argnames] = value;
43748 if (*name)
continue;
43750 PyObject*** argname = argnames;
43751 while (argname != first_kw_arg) {
43752 int cmp = (**argname == key) ? 0 :
43753 #
if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
43754 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
43756 PyUnicode_Compare(**argname, key);
43757 if (cmp < 0 && unlikely(PyErr_Occurred()))
goto bad;
43758 if (cmp == 0)
goto arg_passed_twice;
43763 goto invalid_keyword_type;
43765 if (unlikely(PyDict_SetItem(kwds2, key, value)))
goto bad;
43767 goto invalid_keyword;
43772 __Pyx_RaiseDoubleKeywordsError(function_name, key);
43774 invalid_keyword_type:
43775 PyErr_Format(PyExc_TypeError,
43776 "%.200s() keywords must be strings", function_name);
43779 PyErr_Format(PyExc_TypeError,
43780 #
if PY_MAJOR_VERSION < 3
43781 "%.200s() got an unexpected keyword argument '%.200s'",
43782 function_name, PyString_AsString(key));
43784 "%s() got an unexpected keyword argument '%U'",
43785 function_name, key);
43793 __Pyx_init_memviewslice(
struct __pyx_memoryview_obj *memview,
43795 __Pyx_memviewslice *memviewslice,
43796 int memview_is_new_reference)
43798 __Pyx_RefNannyDeclarations
43800 Py_buffer *buf = &memview->view;
43801 __Pyx_RefNannySetupContext(
"init_memviewslice", 0);
43802 if (memviewslice->memview || memviewslice->data) {
43803 PyErr_SetString(PyExc_ValueError,
43804 "memviewslice is already initialized!");
43807 if (buf->strides) {
43808 for (i = 0; i < ndim; i++) {
43809 memviewslice->strides[i] = buf->strides[i];
43812 Py_ssize_t stride = buf->itemsize;
43813 for (i = ndim - 1; i >= 0; i--) {
43814 memviewslice->strides[i] = stride;
43815 stride *= buf->shape[i];
43818 for (i = 0; i < ndim; i++) {
43819 memviewslice->shape[i] = buf->shape[i];
43820 if (buf->suboffsets) {
43821 memviewslice->suboffsets[i] = buf->suboffsets[i];
43823 memviewslice->suboffsets[i] = -1;
43826 memviewslice->memview = memview;
43827 memviewslice->data = (
char *)buf->buf;
43828 if (__pyx_add_acquisition_count(memview) == 0 && !memview_is_new_reference) {
43829 Py_INCREF(memview);
43834 memviewslice->memview = 0;
43835 memviewslice->data = 0;
43838 __Pyx_RefNannyFinishContext();
43841 #ifndef Py_NO_RETURN 43842 #define Py_NO_RETURN 43844 static void __pyx_fatalerror(
const char *fmt, ...) Py_NO_RETURN {
43847 #ifdef HAVE_STDARG_PROTOTYPES 43848 va_start(vargs, fmt);
43852 vsnprintf(msg, 200, fmt, vargs);
43854 Py_FatalError(msg);
43856 static CYTHON_INLINE
int 43857 __pyx_add_acquisition_count_locked(__pyx_atomic_int *acquisition_count,
43858 PyThread_type_lock lock)
43861 PyThread_acquire_lock(lock, 1);
43862 result = (*acquisition_count)++;
43863 PyThread_release_lock(lock);
43866 static CYTHON_INLINE
int 43867 __pyx_sub_acquisition_count_locked(__pyx_atomic_int *acquisition_count,
43868 PyThread_type_lock lock)
43871 PyThread_acquire_lock(lock, 1);
43872 result = (*acquisition_count)--;
43873 PyThread_release_lock(lock);
43876 static CYTHON_INLINE
void 43877 __Pyx_INC_MEMVIEW(__Pyx_memviewslice *memslice,
int have_gil,
int lineno)
43880 struct __pyx_memoryview_obj *memview = memslice->memview;
43881 if (!memview || (PyObject *) memview == Py_None)
43883 if (__pyx_get_slice_count(memview) < 0)
43884 __pyx_fatalerror(
"Acquisition count is %d (line %d)",
43885 __pyx_get_slice_count(memview), lineno);
43886 first_time = __pyx_add_acquisition_count(memview) == 0;
43889 Py_INCREF((PyObject *) memview);
43891 PyGILState_STATE _gilstate = PyGILState_Ensure();
43892 Py_INCREF((PyObject *) memview);
43893 PyGILState_Release(_gilstate);
43897 static CYTHON_INLINE
void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *memslice,
43898 int have_gil,
int lineno) {
43900 struct __pyx_memoryview_obj *memview = memslice->memview;
43903 }
else if ((PyObject *) memview == Py_None) {
43904 memslice->memview = NULL;
43907 if (__pyx_get_slice_count(memview) <= 0)
43908 __pyx_fatalerror(
"Acquisition count is %d (line %d)",
43909 __pyx_get_slice_count(memview), lineno);
43910 last_time = __pyx_sub_acquisition_count(memview) == 1;
43911 memslice->data = NULL;
43914 Py_CLEAR(memslice->memview);
43916 PyGILState_STATE _gilstate = PyGILState_Ensure();
43917 Py_CLEAR(memslice->memview);
43918 PyGILState_Release(_gilstate);
43921 memslice->memview = NULL;
43926 #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS 43927 static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
43928 PyObject *dict = Py_TYPE(obj)->tp_dict;
43929 return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
43931 static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
43932 PyObject **dictptr = NULL;
43933 Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
43935 #if CYTHON_COMPILING_IN_CPYTHON 43936 dictptr = (likely(offset > 0)) ? (PyObject **) ((
char *)obj + offset) : _PyObject_GetDictPtr(obj);
43938 dictptr = _PyObject_GetDictPtr(obj);
43941 return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
43943 static CYTHON_INLINE
int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
43944 PyObject *dict = Py_TYPE(obj)->tp_dict;
43945 if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
43947 return obj_dict_version == __Pyx_get_object_dict_version(obj);
43952 #if CYTHON_USE_DICT_VERSIONS 43953 static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
43955 static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
43959 #if !CYTHON_AVOID_BORROWED_REFS 43960 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 43961 result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash);
43962 __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
43963 if (likely(result)) {
43964 return __Pyx_NewRef(result);
43965 }
else if (unlikely(PyErr_Occurred())) {
43969 result = PyDict_GetItem(__pyx_d, name);
43970 __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
43971 if (likely(result)) {
43972 return __Pyx_NewRef(result);
43976 result = PyObject_GetItem(__pyx_d, name);
43977 __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
43978 if (likely(result)) {
43979 return __Pyx_NewRef(result);
43983 return __Pyx_GetBuiltinName(name);
43987 #if CYTHON_FAST_PYCCALL 43988 static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) {
43989 PyCFunctionObject *func = (PyCFunctionObject*)func_obj;
43990 PyCFunction meth = PyCFunction_GET_FUNCTION(func);
43991 PyObject *
self = PyCFunction_GET_SELF(func);
43992 int flags = PyCFunction_GET_FLAGS(func);
43993 assert(PyCFunction_Check(func));
43994 assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)));
43995 assert(nargs >= 0);
43996 assert(nargs == 0 || args != NULL);
44000 assert(!PyErr_Occurred());
44001 if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) {
44002 return (*((__Pyx_PyCFunctionFastWithKeywords)(
void*)meth)) (
self, args, nargs, NULL);
44004 return (*((__Pyx_PyCFunctionFast)(
void*)meth)) (
self, args, nargs);
44010 #if CYTHON_FAST_PYCALL 44011 static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
44012 PyObject *globals) {
44014 PyThreadState *tstate = __Pyx_PyThreadState_Current;
44015 PyObject **fastlocals;
44018 assert(globals != NULL);
44023 assert(tstate != NULL);
44024 f = PyFrame_New(tstate, co, globals, NULL);
44028 fastlocals = __Pyx_PyFrame_GetLocalsplus(f);
44029 for (i = 0; i < na; i++) {
44031 fastlocals[i] = *args++;
44033 result = PyEval_EvalFrameEx(f,0);
44034 ++tstate->recursion_depth;
44036 --tstate->recursion_depth;
44039 #if 1 || PY_VERSION_HEX < 0x030600B1 44040 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) {
44041 PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
44042 PyObject *globals = PyFunction_GET_GLOBALS(func);
44043 PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
44045 #if PY_MAJOR_VERSION >= 3 44048 PyObject *kwtuple, **k;
44053 assert(kwargs == NULL || PyDict_Check(kwargs));
44054 nk = kwargs ? PyDict_Size(kwargs) : 0;
44055 if (Py_EnterRecursiveCall((
char*)
" while calling a Python object")) {
44059 #
if PY_MAJOR_VERSION >= 3
44060 co->co_kwonlyargcount == 0 &&
44062 likely(kwargs == NULL || nk == 0) &&
44063 co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
44064 if (argdefs == NULL && co->co_argcount == nargs) {
44065 result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
44068 else if (nargs == 0 && argdefs != NULL
44069 && co->co_argcount == Py_SIZE(argdefs)) {
44072 args = &PyTuple_GET_ITEM(argdefs, 0);
44073 result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
44077 if (kwargs != NULL) {
44079 kwtuple = PyTuple_New(2 * nk);
44080 if (kwtuple == NULL) {
44084 k = &PyTuple_GET_ITEM(kwtuple, 0);
44086 while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
44097 closure = PyFunction_GET_CLOSURE(func);
44098 #if PY_MAJOR_VERSION >= 3 44099 kwdefs = PyFunction_GET_KW_DEFAULTS(func);
44101 if (argdefs != NULL) {
44102 d = &PyTuple_GET_ITEM(argdefs, 0);
44103 nd = Py_SIZE(argdefs);
44109 #if PY_MAJOR_VERSION >= 3 44110 result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
44113 d, (
int)nd, kwdefs, closure);
44115 result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
44118 d, (
int)nd, closure);
44120 Py_XDECREF(kwtuple);
44122 Py_LeaveRecursiveCall();
44129 #if CYTHON_COMPILING_IN_CPYTHON 44130 static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
44132 ternaryfunc call = func->ob_type->tp_call;
44133 if (unlikely(!call))
44134 return PyObject_Call(func, arg, kw);
44135 if (unlikely(Py_EnterRecursiveCall((
char*)
" while calling a Python object")))
44137 result = (*call)(func, arg, kw);
44138 Py_LeaveRecursiveCall();
44139 if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
44142 "NULL result without error in PyObject_Call");
44149 static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject*
function, PyObject* arg1, PyObject* arg2) {
44150 PyObject *args, *result = NULL;
44151 #if CYTHON_FAST_PYCALL 44152 if (PyFunction_Check(
function)) {
44153 PyObject *args[2] = {arg1, arg2};
44154 return __Pyx_PyFunction_FastCall(
function, args, 2);
44157 #if CYTHON_FAST_PYCCALL 44158 if (__Pyx_PyFastCFunction_Check(
function)) {
44159 PyObject *args[2] = {arg1, arg2};
44160 return __Pyx_PyCFunction_FastCall(
function, args, 2);
44163 args = PyTuple_New(2);
44164 if (unlikely(!args))
goto done;
44166 PyTuple_SET_ITEM(args, 0, arg1);
44168 PyTuple_SET_ITEM(args, 1, arg2);
44169 Py_INCREF(
function);
44170 result = __Pyx_PyObject_Call(
function, args, NULL);
44172 Py_DECREF(
function);
44178 #if CYTHON_COMPILING_IN_CPYTHON 44179 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
44180 PyObject *
self, *result;
44182 cfunc = PyCFunction_GET_FUNCTION(func);
44183 self = PyCFunction_GET_SELF(func);
44184 if (unlikely(Py_EnterRecursiveCall((
char*)
" while calling a Python object")))
44186 result = cfunc(
self, arg);
44187 Py_LeaveRecursiveCall();
44188 if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
44191 "NULL result without error in PyObject_Call");
44198 #if CYTHON_COMPILING_IN_CPYTHON 44199 static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) {
44201 PyObject *args = PyTuple_New(1);
44202 if (unlikely(!args))
return NULL;
44204 PyTuple_SET_ITEM(args, 0, arg);
44205 result = __Pyx_PyObject_Call(func, args, NULL);
44209 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
44210 #if CYTHON_FAST_PYCALL 44211 if (PyFunction_Check(func)) {
44212 return __Pyx_PyFunction_FastCall(func, &arg, 1);
44215 if (likely(PyCFunction_Check(func))) {
44216 if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
44217 return __Pyx_PyObject_CallMethO(func, arg);
44218 #if CYTHON_FAST_PYCCALL 44219 }
else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) {
44220 return __Pyx_PyCFunction_FastCall(func, &arg, 1);
44224 return __Pyx__PyObject_CallOneArg(func, arg);
44227 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
44229 PyObject *args = PyTuple_Pack(1, arg);
44230 if (unlikely(!args))
return NULL;
44231 result = __Pyx_PyObject_Call(func, args, NULL);
44238 #if !CYTHON_COMPILING_IN_PYPY 44239 static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED
long intval,
int inplace,
int zerodivision_check) {
44241 (void)zerodivision_check;
44242 #if PY_MAJOR_VERSION < 3 44243 if (likely(PyInt_CheckExact(op1))) {
44244 const long b = intval;
44246 long a = PyInt_AS_LONG(op1);
44247 x = (long)((
unsigned long)a + b);
44248 if (likely((x^a) >= 0 || (x^b) >= 0))
44249 return PyInt_FromLong(x);
44250 return PyLong_Type.tp_as_number->nb_add(op1, op2);
44253 #if CYTHON_USE_PYLONG_INTERNALS 44254 if (likely(PyLong_CheckExact(op1))) {
44255 const long b = intval;
44257 #ifdef HAVE_LONG_LONG 44258 const PY_LONG_LONG llb = intval;
44259 PY_LONG_LONG lla, llx;
44261 const digit* digits = ((PyLongObject*)op1)->ob_digit;
44262 const Py_ssize_t size = Py_SIZE(op1);
44263 if (likely(__Pyx_sst_abs(size) <= 1)) {
44264 a = likely(size) ? digits[0] : 0;
44265 if (size == -1) a = -a;
44269 if (8 *
sizeof(
long) - 1 > 2 * PyLong_SHIFT) {
44270 a = -(long) (((((
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0]));
44272 #ifdef HAVE_LONG_LONG 44273 }
else if (8 *
sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
44274 lla = -(PY_LONG_LONG) (((((
unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (
unsigned PY_LONG_LONG)digits[0]));
44278 CYTHON_FALLTHROUGH;
44280 if (8 *
sizeof(
long) - 1 > 2 * PyLong_SHIFT) {
44281 a = (long) (((((
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0]));
44283 #ifdef HAVE_LONG_LONG 44284 }
else if (8 *
sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
44285 lla = (PY_LONG_LONG) (((((
unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (
unsigned PY_LONG_LONG)digits[0]));
44289 CYTHON_FALLTHROUGH;
44291 if (8 *
sizeof(
long) - 1 > 3 * PyLong_SHIFT) {
44292 a = -(long) (((((((
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0]));
44294 #ifdef HAVE_LONG_LONG 44295 }
else if (8 *
sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
44296 lla = -(PY_LONG_LONG) (((((((
unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (
unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (
unsigned PY_LONG_LONG)digits[0]));
44300 CYTHON_FALLTHROUGH;
44302 if (8 *
sizeof(
long) - 1 > 3 * PyLong_SHIFT) {
44303 a = (long) (((((((
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0]));
44305 #ifdef HAVE_LONG_LONG 44306 }
else if (8 *
sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
44307 lla = (PY_LONG_LONG) (((((((
unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (
unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (
unsigned PY_LONG_LONG)digits[0]));
44311 CYTHON_FALLTHROUGH;
44313 if (8 *
sizeof(
long) - 1 > 4 * PyLong_SHIFT) {
44314 a = -(long) (((((((((
unsigned long)digits[3]) << PyLong_SHIFT) | (
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0]));
44316 #ifdef HAVE_LONG_LONG 44317 }
else if (8 *
sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
44318 lla = -(PY_LONG_LONG) (((((((((
unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (
unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (
unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (
unsigned PY_LONG_LONG)digits[0]));
44322 CYTHON_FALLTHROUGH;
44324 if (8 *
sizeof(
long) - 1 > 4 * PyLong_SHIFT) {
44325 a = (long) (((((((((
unsigned long)digits[3]) << PyLong_SHIFT) | (
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0]));
44327 #ifdef HAVE_LONG_LONG 44328 }
else if (8 *
sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
44329 lla = (PY_LONG_LONG) (((((((((
unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (
unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (
unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (
unsigned PY_LONG_LONG)digits[0]));
44333 CYTHON_FALLTHROUGH;
44334 default:
return PyLong_Type.tp_as_number->nb_add(op1, op2);
44338 return PyLong_FromLong(x);
44339 #ifdef HAVE_LONG_LONG 44342 return PyLong_FromLongLong(llx);
44348 if (PyFloat_CheckExact(op1)) {
44349 const long b = intval;
44350 double a = PyFloat_AS_DOUBLE(op1);
44352 PyFPE_START_PROTECT(
"add",
return NULL)
44353 result = ((double)a) + (double)b;
44354 PyFPE_END_PROTECT(result)
44355 return PyFloat_FromDouble(result);
44357 return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
44362 static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
44364 if (!j)
return NULL;
44365 r = PyObject_GetItem(o, j);
44369 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
44370 CYTHON_NCP_UNUSED
int wraparound,
44371 CYTHON_NCP_UNUSED
int boundscheck) {
44372 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 44373 Py_ssize_t wrapped_i = i;
44374 if (wraparound & unlikely(i < 0)) {
44375 wrapped_i += PyList_GET_SIZE(o);
44377 if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
44378 PyObject *
r = PyList_GET_ITEM(o, wrapped_i);
44382 return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
44384 return PySequence_GetItem(o, i);
44387 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
44388 CYTHON_NCP_UNUSED
int wraparound,
44389 CYTHON_NCP_UNUSED
int boundscheck) {
44390 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 44391 Py_ssize_t wrapped_i = i;
44392 if (wraparound & unlikely(i < 0)) {
44393 wrapped_i += PyTuple_GET_SIZE(o);
44395 if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
44396 PyObject *
r = PyTuple_GET_ITEM(o, wrapped_i);
44400 return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
44402 return PySequence_GetItem(o, i);
44405 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
int is_list,
44406 CYTHON_NCP_UNUSED
int wraparound,
44407 CYTHON_NCP_UNUSED
int boundscheck) {
44408 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS 44409 if (is_list || PyList_CheckExact(o)) {
44410 Py_ssize_t
n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
44411 if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
44412 PyObject *
r = PyList_GET_ITEM(o, n);
44417 else if (PyTuple_CheckExact(o)) {
44418 Py_ssize_t
n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
44419 if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
44420 PyObject *
r = PyTuple_GET_ITEM(o, n);
44425 PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
44426 if (likely(m && m->sq_item)) {
44427 if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
44428 Py_ssize_t l = m->sq_length(o);
44429 if (likely(l >= 0)) {
44432 if (!PyErr_ExceptionMatches(PyExc_OverflowError))
44437 return m->sq_item(o, i);
44441 if (is_list || PySequence_Check(o)) {
44442 return PySequence_GetItem(o, i);
44445 return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
44449 #if CYTHON_USE_TYPE_SLOTS 44450 static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) {
44452 Py_ssize_t key_value;
44453 PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence;
44454 if (unlikely(!(m && m->sq_item))) {
44455 PyErr_Format(PyExc_TypeError,
"'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name);
44458 key_value = __Pyx_PyIndex_AsSsize_t(index);
44459 if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
44460 return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1);
44462 if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
44464 PyErr_Format(PyExc_IndexError,
"cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name);
44468 static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) {
44469 PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping;
44470 if (likely(m && m->mp_subscript)) {
44471 return m->mp_subscript(obj, key);
44473 return __Pyx_PyObject_GetIndex(obj, key);
44478 static CYTHON_INLINE
int __Pyx_IterFinish(
void) {
44479 #if CYTHON_FAST_THREAD_STATE 44480 PyThreadState *tstate = __Pyx_PyThreadState_Current;
44481 PyObject* exc_type = tstate->curexc_type;
44482 if (unlikely(exc_type)) {
44483 if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) {
44484 PyObject *exc_value, *exc_tb;
44485 exc_value = tstate->curexc_value;
44486 exc_tb = tstate->curexc_traceback;
44487 tstate->curexc_type = 0;
44488 tstate->curexc_value = 0;
44489 tstate->curexc_traceback = 0;
44490 Py_DECREF(exc_type);
44491 Py_XDECREF(exc_value);
44492 Py_XDECREF(exc_tb);
44500 if (unlikely(PyErr_Occurred())) {
44501 if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) {
44513 static CYTHON_INLINE PyObject* __Pyx_set_iterator(PyObject* iterable,
int is_set,
44514 Py_ssize_t* p_orig_length,
int* p_source_is_set) {
44515 #if CYTHON_COMPILING_IN_CPYTHON 44516 is_set = is_set || likely(PySet_CheckExact(iterable) || PyFrozenSet_CheckExact(iterable));
44517 *p_source_is_set = is_set;
44518 if (likely(is_set)) {
44519 *p_orig_length = PySet_Size(iterable);
44520 Py_INCREF(iterable);
44525 *p_source_is_set = 0;
44527 *p_orig_length = 0;
44528 return PyObject_GetIter(iterable);
44530 static CYTHON_INLINE
int __Pyx_set_iter_next(
44531 PyObject* iter_obj, Py_ssize_t orig_length,
44532 Py_ssize_t* ppos, PyObject **value,
44533 int source_is_set) {
44534 if (!CYTHON_COMPILING_IN_CPYTHON || unlikely(!source_is_set)) {
44535 *value = PyIter_Next(iter_obj);
44536 if (unlikely(!*value)) {
44537 return __Pyx_IterFinish();
44543 #if CYTHON_COMPILING_IN_CPYTHON 44544 if (unlikely(PySet_GET_SIZE(iter_obj) != orig_length)) {
44546 PyExc_RuntimeError,
44547 "set changed size during iteration");
44552 int ret = _PySet_NextEntry(iter_obj, ppos, value, &hash);
44553 assert (ret != -1);
44564 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list,
int level) {
44565 PyObject *empty_list = 0;
44566 PyObject *module = 0;
44567 PyObject *global_dict = 0;
44568 PyObject *empty_dict = 0;
44570 #if PY_MAJOR_VERSION < 3 44571 PyObject *py_import;
44572 py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
44579 empty_list = PyList_New(0);
44584 global_dict = PyModule_GetDict(__pyx_m);
44587 empty_dict = PyDict_New();
44591 #if PY_MAJOR_VERSION >= 3 44593 if (strchr(__Pyx_MODULE_NAME,
'.')) {
44594 module = PyImport_ImportModuleLevelObject(
44595 name, global_dict, empty_dict, list, 1);
44597 if (!PyErr_ExceptionMatches(PyExc_ImportError))
44606 #if PY_MAJOR_VERSION < 3 44607 PyObject *py_level = PyInt_FromLong(level);
44610 module = PyObject_CallFunctionObjArgs(py_import,
44611 name, global_dict, empty_dict, list, py_level, (PyObject *)NULL);
44612 Py_DECREF(py_level);
44614 module = PyImport_ImportModuleLevelObject(
44615 name, global_dict, empty_dict, list, level);
44620 #if PY_MAJOR_VERSION < 3 44621 Py_XDECREF(py_import);
44623 Py_XDECREF(empty_list);
44624 Py_XDECREF(empty_dict);
44629 static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
44630 PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
44631 if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
44632 PyErr_Format(PyExc_ImportError,
44633 #
if PY_MAJOR_VERSION < 3
44634 "cannot import name %.230s", PyString_AS_STRING(name));
44636 "cannot import name %S", name);
44643 #if CYTHON_COMPILING_IN_CPYTHON 44644 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
44645 #if CYTHON_FAST_PYCALL 44646 if (PyFunction_Check(func)) {
44647 return __Pyx_PyFunction_FastCall(func, NULL, 0);
44650 #ifdef __Pyx_CyFunction_USED 44651 if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func)))
44653 if (likely(PyCFunction_Check(func)))
44656 if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) {
44657 return __Pyx_PyObject_CallMethO(func, NULL);
44660 return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL);
44665 #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY 44666 static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
44668 value = PyDict_GetItemWithError(d, key);
44669 if (unlikely(!value)) {
44670 if (!PyErr_Occurred()) {
44671 if (unlikely(PyTuple_Check(key))) {
44672 PyObject* args = PyTuple_Pack(1, key);
44673 if (likely(args)) {
44674 PyErr_SetObject(PyExc_KeyError, args);
44678 PyErr_SetObject(PyExc_KeyError, key);
44689 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj,
44690 Py_ssize_t cstart, Py_ssize_t cstop,
44691 PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
44692 int has_cstart,
int has_cstop, CYTHON_UNUSED
int wraparound) {
44693 #if CYTHON_USE_TYPE_SLOTS 44694 PyMappingMethods* mp;
44695 #if PY_MAJOR_VERSION < 3 44696 PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence;
44697 if (likely(ms && ms->sq_slice)) {
44699 if (_py_start && (*_py_start != Py_None)) {
44700 cstart = __Pyx_PyIndex_AsSsize_t(*_py_start);
44701 if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred())
goto bad;
44706 if (_py_stop && (*_py_stop != Py_None)) {
44707 cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop);
44708 if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred())
goto bad;
44710 cstop = PY_SSIZE_T_MAX;
44712 if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) {
44713 Py_ssize_t l = ms->sq_length(obj);
44714 if (likely(l >= 0)) {
44717 if (cstop < 0) cstop = 0;
44721 if (cstart < 0) cstart = 0;
44724 if (!PyErr_ExceptionMatches(PyExc_OverflowError))
44729 return ms->sq_slice(obj, cstart, cstop);
44732 mp = Py_TYPE(obj)->tp_as_mapping;
44733 if (likely(mp && mp->mp_subscript))
44737 PyObject *py_slice, *py_start, *py_stop;
44739 py_slice = *_py_slice;
44741 PyObject* owned_start = NULL;
44742 PyObject* owned_stop = NULL;
44744 py_start = *_py_start;
44747 owned_start = py_start = PyInt_FromSsize_t(cstart);
44748 if (unlikely(!py_start))
goto bad;
44750 py_start = Py_None;
44753 py_stop = *_py_stop;
44756 owned_stop = py_stop = PyInt_FromSsize_t(cstop);
44757 if (unlikely(!py_stop)) {
44758 Py_XDECREF(owned_start);
44764 py_slice = PySlice_New(py_start, py_stop, Py_None);
44765 Py_XDECREF(owned_start);
44766 Py_XDECREF(owned_stop);
44767 if (unlikely(!py_slice))
goto bad;
44769 #if CYTHON_USE_TYPE_SLOTS 44770 result = mp->mp_subscript(obj, py_slice);
44772 result = PyObject_GetItem(obj, py_slice);
44775 Py_DECREF(py_slice);
44779 PyErr_Format(PyExc_TypeError,
44780 "'%.200s' object is unsliceable", Py_TYPE(obj)->tp_name);
44786 static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *
v) {
44789 r = PyObject_SetItem(o, j, v);
44793 static CYTHON_INLINE
int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *
v,
int is_list,
44794 CYTHON_NCP_UNUSED
int wraparound, CYTHON_NCP_UNUSED
int boundscheck) {
44795 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS 44796 if (is_list || PyList_CheckExact(o)) {
44797 Py_ssize_t
n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o));
44798 if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) {
44799 PyObject* old = PyList_GET_ITEM(o, n);
44801 PyList_SET_ITEM(o, n,
v);
44806 PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
44807 if (likely(m && m->sq_ass_item)) {
44808 if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
44809 Py_ssize_t l = m->sq_length(o);
44810 if (likely(l >= 0)) {
44813 if (!PyErr_ExceptionMatches(PyExc_OverflowError))
44818 return m->sq_ass_item(o, i,
v);
44822 #if CYTHON_COMPILING_IN_PYPY 44823 if (is_list || (PySequence_Check(o) && !PyDict_Check(o)))
44825 if (is_list || PySequence_Check(o))
44828 return PySequence_SetItem(o, i,
v);
44831 return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i),
v);
44835 #if CYTHON_FAST_THREAD_STATE 44836 static CYTHON_INLINE
void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
44837 PyObject *tmp_type, *tmp_value, *tmp_tb;
44838 tmp_type = tstate->curexc_type;
44839 tmp_value = tstate->curexc_value;
44840 tmp_tb = tstate->curexc_traceback;
44841 tstate->curexc_type = type;
44842 tstate->curexc_value = value;
44843 tstate->curexc_traceback = tb;
44844 Py_XDECREF(tmp_type);
44845 Py_XDECREF(tmp_value);
44846 Py_XDECREF(tmp_tb);
44848 static CYTHON_INLINE
void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
44849 *type = tstate->curexc_type;
44850 *value = tstate->curexc_value;
44851 *tb = tstate->curexc_traceback;
44852 tstate->curexc_type = 0;
44853 tstate->curexc_value = 0;
44854 tstate->curexc_traceback = 0;
44859 static void __Pyx_WriteUnraisable(
const char *name, CYTHON_UNUSED
int clineno,
44860 CYTHON_UNUSED
int lineno, CYTHON_UNUSED
const char *filename,
44861 int full_traceback, CYTHON_UNUSED
int nogil) {
44862 PyObject *old_exc, *old_val, *old_tb;
44864 __Pyx_PyThreadState_declare
44866 PyGILState_STATE state;
44868 state = PyGILState_Ensure();
44870 else state = (PyGILState_STATE)-1;
44873 __Pyx_PyThreadState_assign
44874 __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
44875 if (full_traceback) {
44876 Py_XINCREF(old_exc);
44877 Py_XINCREF(old_val);
44878 Py_XINCREF(old_tb);
44879 __Pyx_ErrRestore(old_exc, old_val, old_tb);
44882 #if PY_MAJOR_VERSION < 3 44883 ctx = PyString_FromString(name);
44885 ctx = PyUnicode_FromString(name);
44887 __Pyx_ErrRestore(old_exc, old_val, old_tb);
44889 PyErr_WriteUnraisable(Py_None);
44891 PyErr_WriteUnraisable(ctx);
44896 PyGILState_Release(state);
44901 static CYTHON_INLINE
int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
44902 if (unlikely(!type)) {
44903 PyErr_SetString(PyExc_SystemError,
"Missing type object");
44906 if (likely(__Pyx_TypeCheck(obj, type)))
44908 PyErr_Format(PyExc_TypeError,
"Cannot convert %.200s to %.200s",
44909 Py_TYPE(obj)->tp_name, type->tp_name);
44914 #if PY_MAJOR_VERSION < 3 44915 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,
44916 CYTHON_UNUSED PyObject *cause) {
44917 __Pyx_PyThreadState_declare
44919 if (!value || value == Py_None)
44923 if (!tb || tb == Py_None)
44927 if (!PyTraceBack_Check(tb)) {
44928 PyErr_SetString(PyExc_TypeError,
44929 "raise: arg 3 must be a traceback or None");
44933 if (PyType_Check(type)) {
44934 #if CYTHON_COMPILING_IN_PYPY 44936 Py_INCREF(Py_None);
44940 PyErr_NormalizeException(&type, &value, &tb);
44943 PyErr_SetString(PyExc_TypeError,
44944 "instance exception may not have a separate value");
44948 type = (PyObject*) Py_TYPE(type);
44950 if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
44951 PyErr_SetString(PyExc_TypeError,
44952 "raise: exception class must be a subclass of BaseException");
44956 __Pyx_PyThreadState_assign
44957 __Pyx_ErrRestore(type, value, tb);
44966 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
44967 PyObject* owned_instance = NULL;
44968 if (tb == Py_None) {
44970 }
else if (tb && !PyTraceBack_Check(tb)) {
44971 PyErr_SetString(PyExc_TypeError,
44972 "raise: arg 3 must be a traceback or None");
44975 if (value == Py_None)
44977 if (PyExceptionInstance_Check(type)) {
44979 PyErr_SetString(PyExc_TypeError,
44980 "instance exception may not have a separate value");
44984 type = (PyObject*) Py_TYPE(value);
44985 }
else if (PyExceptionClass_Check(type)) {
44986 PyObject *instance_class = NULL;
44987 if (value && PyExceptionInstance_Check(value)) {
44988 instance_class = (PyObject*) Py_TYPE(value);
44989 if (instance_class != type) {
44990 int is_subclass = PyObject_IsSubclass(instance_class, type);
44991 if (!is_subclass) {
44992 instance_class = NULL;
44993 }
else if (unlikely(is_subclass == -1)) {
44996 type = instance_class;
45000 if (!instance_class) {
45003 args = PyTuple_New(0);
45004 else if (PyTuple_Check(value)) {
45008 args = PyTuple_Pack(1, value);
45011 owned_instance = PyObject_Call(type, args, NULL);
45013 if (!owned_instance)
45015 value = owned_instance;
45016 if (!PyExceptionInstance_Check(value)) {
45017 PyErr_Format(PyExc_TypeError,
45018 "calling %R should have returned an instance of " 45019 "BaseException, not %R",
45020 type, Py_TYPE(value));
45025 PyErr_SetString(PyExc_TypeError,
45026 "raise: exception class must be a subclass of BaseException");
45030 PyObject *fixed_cause;
45031 if (cause == Py_None) {
45032 fixed_cause = NULL;
45033 }
else if (PyExceptionClass_Check(cause)) {
45034 fixed_cause = PyObject_CallObject(cause, NULL);
45035 if (fixed_cause == NULL)
45037 }
else if (PyExceptionInstance_Check(cause)) {
45038 fixed_cause = cause;
45039 Py_INCREF(fixed_cause);
45041 PyErr_SetString(PyExc_TypeError,
45042 "exception causes must derive from " 45046 PyException_SetCause(value, fixed_cause);
45048 PyErr_SetObject(type, value);
45050 #if CYTHON_COMPILING_IN_PYPY 45051 PyObject *tmp_type, *tmp_value, *tmp_tb;
45052 PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
45054 PyErr_Restore(tmp_type, tmp_value, tb);
45055 Py_XDECREF(tmp_tb);
45057 PyThreadState *tstate = __Pyx_PyThreadState_Current;
45058 PyObject* tmp_tb = tstate->curexc_traceback;
45059 if (tb != tmp_tb) {
45061 tstate->curexc_traceback = tb;
45062 Py_XDECREF(tmp_tb);
45067 Py_XDECREF(owned_instance);
45073 static CYTHON_INLINE
void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
45074 PyErr_Format(PyExc_ValueError,
45075 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T
"d)", expected);
45079 static CYTHON_INLINE
void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
45080 PyErr_Format(PyExc_ValueError,
45081 "need more than %" CYTHON_FORMAT_SSIZE_T
"d value%.1s to unpack",
45082 index, (index == 1) ?
"" :
"s");
45086 static CYTHON_INLINE
void __Pyx_RaiseNoneNotIterableError(
void) {
45087 PyErr_SetString(PyExc_TypeError,
"'NoneType' object is not iterable");
45091 #if CYTHON_USE_EXC_INFO_STACK 45092 static _PyErr_StackItem *
45093 __Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
45095 _PyErr_StackItem *exc_info = tstate->exc_info;
45096 while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) &&
45097 exc_info->previous_item != NULL)
45099 exc_info = exc_info->previous_item;
45106 #if CYTHON_FAST_THREAD_STATE 45107 static CYTHON_INLINE
void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
45108 #if CYTHON_USE_EXC_INFO_STACK 45109 _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
45110 *type = exc_info->exc_type;
45111 *value = exc_info->exc_value;
45112 *tb = exc_info->exc_traceback;
45114 *type = tstate->exc_type;
45115 *value = tstate->exc_value;
45116 *tb = tstate->exc_traceback;
45119 Py_XINCREF(*value);
45122 static CYTHON_INLINE
void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
45123 PyObject *tmp_type, *tmp_value, *tmp_tb;
45124 #if CYTHON_USE_EXC_INFO_STACK 45125 _PyErr_StackItem *exc_info = tstate->exc_info;
45126 tmp_type = exc_info->exc_type;
45127 tmp_value = exc_info->exc_value;
45128 tmp_tb = exc_info->exc_traceback;
45129 exc_info->exc_type = type;
45130 exc_info->exc_value = value;
45131 exc_info->exc_traceback = tb;
45133 tmp_type = tstate->exc_type;
45134 tmp_value = tstate->exc_value;
45135 tmp_tb = tstate->exc_traceback;
45136 tstate->exc_type = type;
45137 tstate->exc_value = value;
45138 tstate->exc_traceback = tb;
45140 Py_XDECREF(tmp_type);
45141 Py_XDECREF(tmp_value);
45142 Py_XDECREF(tmp_tb);
45147 #if CYTHON_FAST_THREAD_STATE 45148 static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
45150 n = PyTuple_GET_SIZE(tuple);
45151 #if PY_MAJOR_VERSION >= 3 45152 for (i=0; i<
n; i++) {
45153 if (exc_type == PyTuple_GET_ITEM(tuple, i))
return 1;
45156 for (i=0; i<
n; i++) {
45157 if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i)))
return 1;
45161 static CYTHON_INLINE
int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
45162 PyObject *exc_type = tstate->curexc_type;
45163 if (exc_type == err)
return 1;
45164 if (unlikely(!exc_type))
return 0;
45165 if (unlikely(PyTuple_Check(err)))
45166 return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
45167 return __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
45172 #if CYTHON_FAST_THREAD_STATE 45173 static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
45175 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
45178 PyObject *local_type, *local_value, *local_tb;
45179 #if CYTHON_FAST_THREAD_STATE 45180 PyObject *tmp_type, *tmp_value, *tmp_tb;
45181 local_type = tstate->curexc_type;
45182 local_value = tstate->curexc_value;
45183 local_tb = tstate->curexc_traceback;
45184 tstate->curexc_type = 0;
45185 tstate->curexc_value = 0;
45186 tstate->curexc_traceback = 0;
45188 PyErr_Fetch(&local_type, &local_value, &local_tb);
45190 PyErr_NormalizeException(&local_type, &local_value, &local_tb);
45191 #if CYTHON_FAST_THREAD_STATE 45192 if (unlikely(tstate->curexc_type))
45194 if (unlikely(PyErr_Occurred()))
45197 #if PY_MAJOR_VERSION >= 3 45199 if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
45203 Py_XINCREF(local_tb);
45204 Py_XINCREF(local_type);
45205 Py_XINCREF(local_value);
45206 *type = local_type;
45207 *value = local_value;
45209 #if CYTHON_FAST_THREAD_STATE 45210 #if CYTHON_USE_EXC_INFO_STACK 45212 _PyErr_StackItem *exc_info = tstate->exc_info;
45213 tmp_type = exc_info->exc_type;
45214 tmp_value = exc_info->exc_value;
45215 tmp_tb = exc_info->exc_traceback;
45216 exc_info->exc_type = local_type;
45217 exc_info->exc_value = local_value;
45218 exc_info->exc_traceback = local_tb;
45221 tmp_type = tstate->exc_type;
45222 tmp_value = tstate->exc_value;
45223 tmp_tb = tstate->exc_traceback;
45224 tstate->exc_type = local_type;
45225 tstate->exc_value = local_value;
45226 tstate->exc_traceback = local_tb;
45228 Py_XDECREF(tmp_type);
45229 Py_XDECREF(tmp_value);
45230 Py_XDECREF(tmp_tb);
45232 PyErr_SetExcInfo(local_type, local_value, local_tb);
45239 Py_XDECREF(local_type);
45240 Py_XDECREF(local_value);
45241 Py_XDECREF(local_tb);
45246 static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type,
const char *name,
int exact)
45248 if (unlikely(!type)) {
45249 PyErr_SetString(PyExc_SystemError,
"Missing type object");
45253 #if PY_MAJOR_VERSION == 2 45254 if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj)))
return 1;
45258 if (likely(__Pyx_TypeCheck(obj, type)))
return 1;
45260 PyErr_Format(PyExc_TypeError,
45261 "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)",
45262 name, type->tp_name, Py_TYPE(obj)->tp_name);
45267 static CYTHON_INLINE
int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2,
int equals) {
45268 #if CYTHON_COMPILING_IN_PYPY 45269 return PyObject_RichCompareBool(s1, s2, equals);
45272 return (equals == Py_EQ);
45273 }
else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
45274 const char *ps1, *ps2;
45275 Py_ssize_t length = PyBytes_GET_SIZE(s1);
45276 if (length != PyBytes_GET_SIZE(s2))
45277 return (equals == Py_NE);
45278 ps1 = PyBytes_AS_STRING(s1);
45279 ps2 = PyBytes_AS_STRING(s2);
45280 if (ps1[0] != ps2[0]) {
45281 return (equals == Py_NE);
45282 }
else if (length == 1) {
45283 return (equals == Py_EQ);
45286 #if CYTHON_USE_UNICODE_INTERNALS 45287 Py_hash_t hash1, hash2;
45288 hash1 = ((PyBytesObject*)s1)->ob_shash;
45289 hash2 = ((PyBytesObject*)s2)->ob_shash;
45290 if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
45291 return (equals == Py_NE);
45294 result = memcmp(ps1, ps2, (
size_t)length);
45295 return (equals == Py_EQ) ? (result == 0) : (result != 0);
45297 }
else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
45298 return (equals == Py_NE);
45299 }
else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
45300 return (equals == Py_NE);
45303 PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
45306 result = __Pyx_PyObject_IsTrue(py_result);
45307 Py_DECREF(py_result);
45314 static CYTHON_INLINE
int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2,
int equals) {
45315 #if CYTHON_COMPILING_IN_PYPY 45316 return PyObject_RichCompareBool(s1, s2, equals);
45318 #if PY_MAJOR_VERSION < 3 45319 PyObject* owned_ref = NULL;
45321 int s1_is_unicode, s2_is_unicode;
45325 s1_is_unicode = PyUnicode_CheckExact(s1);
45326 s2_is_unicode = PyUnicode_CheckExact(s2);
45327 #if PY_MAJOR_VERSION < 3 45328 if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
45329 owned_ref = PyUnicode_FromObject(s2);
45330 if (unlikely(!owned_ref))
45334 }
else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
45335 owned_ref = PyUnicode_FromObject(s1);
45336 if (unlikely(!owned_ref))
45340 }
else if (((!s2_is_unicode) & (!s1_is_unicode))) {
45341 return __Pyx_PyBytes_Equals(s1, s2, equals);
45344 if (s1_is_unicode & s2_is_unicode) {
45347 void *data1, *data2;
45348 if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
45350 length = __Pyx_PyUnicode_GET_LENGTH(s1);
45351 if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
45354 #if CYTHON_USE_UNICODE_INTERNALS 45356 Py_hash_t hash1, hash2;
45357 #if CYTHON_PEP393_ENABLED 45358 hash1 = ((PyASCIIObject*)s1)->hash;
45359 hash2 = ((PyASCIIObject*)s2)->hash;
45361 hash1 = ((PyUnicodeObject*)s1)->hash;
45362 hash2 = ((PyUnicodeObject*)s2)->hash;
45364 if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
45369 kind = __Pyx_PyUnicode_KIND(s1);
45370 if (kind != __Pyx_PyUnicode_KIND(s2)) {
45373 data1 = __Pyx_PyUnicode_DATA(s1);
45374 data2 = __Pyx_PyUnicode_DATA(s2);
45375 if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
45377 }
else if (length == 1) {
45380 int result = memcmp(data1, data2, (
size_t)(length * kind));
45381 #if PY_MAJOR_VERSION < 3 45382 Py_XDECREF(owned_ref);
45384 return (equals == Py_EQ) ? (result == 0) : (result != 0);
45386 }
else if ((s1 == Py_None) & s2_is_unicode) {
45388 }
else if ((s2 == Py_None) & s1_is_unicode) {
45392 PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
45393 #if PY_MAJOR_VERSION < 3 45394 Py_XDECREF(owned_ref);
45398 result = __Pyx_PyObject_IsTrue(py_result);
45399 Py_DECREF(py_result);
45403 #if PY_MAJOR_VERSION < 3 45404 Py_XDECREF(owned_ref);
45406 return (equals == Py_EQ);
45408 #if PY_MAJOR_VERSION < 3 45409 Py_XDECREF(owned_ref);
45411 return (equals == Py_NE);
45416 static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *
n) {
45417 #if CYTHON_USE_TYPE_SLOTS 45418 #if PY_MAJOR_VERSION >= 3 45419 if (likely(PyUnicode_Check(n)))
45421 if (likely(PyString_Check(n)))
45423 return __Pyx_PyObject_GetAttrStr(o, n);
45425 return PyObject_GetAttr(o, n);
45429 static CYTHON_INLINE PyObject* __Pyx_decode_c_string(
45430 const char* cstring, Py_ssize_t start, Py_ssize_t stop,
45431 const char* encoding,
const char* errors,
45432 PyObject* (*decode_func)(
const char *
s, Py_ssize_t size,
const char *errors)) {
45434 if (unlikely((start < 0) | (stop < 0))) {
45435 size_t slen = strlen(cstring);
45436 if (unlikely(slen > (
size_t) PY_SSIZE_T_MAX)) {
45437 PyErr_SetString(PyExc_OverflowError,
45438 "c-string too long to convert to Python");
45441 length = (Py_ssize_t) slen;
45450 length = stop - start;
45451 if (unlikely(length <= 0))
45452 return PyUnicode_FromUnicode(NULL, 0);
45455 return decode_func(cstring, length, errors);
45457 return PyUnicode_Decode(cstring, length, encoding, errors);
45462 static PyObject *__Pyx_GetAttr3Default(PyObject *d) {
45463 __Pyx_PyThreadState_declare
45464 __Pyx_PyThreadState_assign
45465 if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
45467 __Pyx_PyErr_Clear();
45471 static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *
n, PyObject *d) {
45472 PyObject *
r = __Pyx_GetAttr(o,
n);
45473 return (likely(r)) ?
r : __Pyx_GetAttr3Default(d);
45477 #if CYTHON_FAST_THREAD_STATE 45478 static CYTHON_INLINE
void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
45479 PyObject *tmp_type, *tmp_value, *tmp_tb;
45480 #if CYTHON_USE_EXC_INFO_STACK 45481 _PyErr_StackItem *exc_info = tstate->exc_info;
45482 tmp_type = exc_info->exc_type;
45483 tmp_value = exc_info->exc_value;
45484 tmp_tb = exc_info->exc_traceback;
45485 exc_info->exc_type = *type;
45486 exc_info->exc_value = *value;
45487 exc_info->exc_traceback = *tb;
45489 tmp_type = tstate->exc_type;
45490 tmp_value = tstate->exc_value;
45491 tmp_tb = tstate->exc_traceback;
45492 tstate->exc_type = *type;
45493 tstate->exc_value = *value;
45494 tstate->exc_traceback = *tb;
45497 *value = tmp_value;
45501 static CYTHON_INLINE
void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
45502 PyObject *tmp_type, *tmp_value, *tmp_tb;
45503 PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
45504 PyErr_SetExcInfo(*type, *value, *tb);
45506 *value = tmp_value;
45512 #if CYTHON_COMPILING_IN_CPYTHON 45513 static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
45519 return b == &PyBaseObject_Type;
45521 static CYTHON_INLINE
int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
45523 if (a == b)
return 1;
45527 n = PyTuple_GET_SIZE(mro);
45528 for (i = 0; i <
n; i++) {
45529 if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
45534 return __Pyx_InBases(a, b);
45536 #if PY_MAJOR_VERSION == 2 45537 static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) {
45538 PyObject *exception, *value, *tb;
45540 __Pyx_PyThreadState_declare
45541 __Pyx_PyThreadState_assign
45542 __Pyx_ErrFetch(&exception, &value, &tb);
45543 res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0;
45544 if (unlikely(res == -1)) {
45545 PyErr_WriteUnraisable(err);
45549 res = PyObject_IsSubclass(err, exc_type2);
45550 if (unlikely(res == -1)) {
45551 PyErr_WriteUnraisable(err);
45555 __Pyx_ErrRestore(exception, value, tb);
45559 static CYTHON_INLINE
int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
45560 int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0;
45562 res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
45567 static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
45569 assert(PyExceptionClass_Check(exc_type));
45570 n = PyTuple_GET_SIZE(tuple);
45571 #if PY_MAJOR_VERSION >= 3 45572 for (i=0; i<
n; i++) {
45573 if (exc_type == PyTuple_GET_ITEM(tuple, i))
return 1;
45576 for (i=0; i<
n; i++) {
45577 PyObject *t = PyTuple_GET_ITEM(tuple, i);
45578 #if PY_MAJOR_VERSION < 3 45579 if (likely(exc_type == t))
return 1;
45581 if (likely(PyExceptionClass_Check(t))) {
45582 if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t))
return 1;
45588 static CYTHON_INLINE
int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
45589 if (likely(err == exc_type))
return 1;
45590 if (likely(PyExceptionClass_Check(err))) {
45591 if (likely(PyExceptionClass_Check(exc_type))) {
45592 return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
45593 }
else if (likely(PyTuple_Check(exc_type))) {
45594 return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
45598 return PyErr_GivenExceptionMatches(err, exc_type);
45600 static CYTHON_INLINE
int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
45601 assert(PyExceptionClass_Check(exc_type1));
45602 assert(PyExceptionClass_Check(exc_type2));
45603 if (likely(err == exc_type1 || err == exc_type2))
return 1;
45604 if (likely(PyExceptionClass_Check(err))) {
45605 return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
45607 return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
45612 static CYTHON_INLINE
void __Pyx_RaiseUnboundLocalError(
const char *varname) {
45613 PyErr_Format(PyExc_UnboundLocalError,
"local variable '%s' referenced before assignment", varname);
45617 static CYTHON_INLINE
int __Pyx_HasAttr(PyObject *o, PyObject *
n) {
45619 if (unlikely(!__Pyx_PyBaseString_Check(n))) {
45620 PyErr_SetString(PyExc_TypeError,
45621 "hasattr(): attribute name must be string");
45624 r = __Pyx_GetAttr(o, n);
45625 if (unlikely(!r)) {
45635 #if !CYTHON_COMPILING_IN_CPYTHON 45636 static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values) {
45637 return PyObject_CallMethodObjArgs(sep, __pyx_n_s_join, values, NULL);
45642 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 45643 static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) {
45644 PyErr_Format(PyExc_AttributeError,
45645 #
if PY_MAJOR_VERSION >= 3
45646 "'%.50s' object has no attribute '%U'",
45647 tp->tp_name, attr_name);
45649 "'%.50s' object has no attribute '%.400s'",
45650 tp->tp_name, PyString_AS_STRING(attr_name));
45654 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) {
45656 PyTypeObject *tp = Py_TYPE(obj);
45657 if (unlikely(!PyString_Check(attr_name))) {
45658 return PyObject_GenericGetAttr(obj, attr_name);
45660 assert(!tp->tp_dictoffset);
45661 descr = _PyType_Lookup(tp, attr_name);
45662 if (unlikely(!descr)) {
45663 return __Pyx_RaiseGenericGetAttributeError(tp, attr_name);
45666 #if PY_MAJOR_VERSION < 3 45667 if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS)))
45670 descrgetfunc
f = Py_TYPE(descr)->tp_descr_get;
45672 PyObject *res =
f(descr, obj, (PyObject *)tp);
45682 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 45683 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) {
45684 if (unlikely(Py_TYPE(obj)->tp_dictoffset)) {
45685 return PyObject_GenericGetAttr(obj, attr_name);
45687 return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name);
45692 static int __Pyx_SetVtable(PyObject *dict,
void *vtable) {
45693 #if PY_VERSION_HEX >= 0x02070000 45694 PyObject *ob = PyCapsule_New(vtable, 0, 0);
45696 PyObject *ob = PyCObject_FromVoidPtr(vtable, 0);
45700 if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0)
45710 static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
45712 PyObject *name_attr;
45713 name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name_2);
45714 if (likely(name_attr)) {
45715 ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
45719 if (unlikely(ret < 0)) {
45723 Py_XDECREF(name_attr);
45726 static int __Pyx_setup_reduce(PyObject* type_obj) {
45728 PyObject *object_reduce = NULL;
45729 PyObject *object_reduce_ex = NULL;
45730 PyObject *reduce = NULL;
45731 PyObject *reduce_ex = NULL;
45732 PyObject *reduce_cython = NULL;
45733 PyObject *setstate = NULL;
45734 PyObject *setstate_cython = NULL;
45735 #if CYTHON_USE_PYTYPE_LOOKUP 45736 if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate))
goto __PYX_GOOD;
45738 if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate))
goto __PYX_GOOD;
45740 #if CYTHON_USE_PYTYPE_LOOKUP 45741 object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex);
if (!object_reduce_ex)
goto __PYX_BAD;
45743 object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex);
if (!object_reduce_ex)
goto __PYX_BAD;
45745 reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex);
if (unlikely(!reduce_ex))
goto __PYX_BAD;
45746 if (reduce_ex == object_reduce_ex) {
45747 #if CYTHON_USE_PYTYPE_LOOKUP 45748 object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce);
if (!object_reduce)
goto __PYX_BAD;
45750 object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce);
if (!object_reduce)
goto __PYX_BAD;
45752 reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce);
if (unlikely(!reduce))
goto __PYX_BAD;
45753 if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) {
45754 reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython);
if (unlikely(!reduce_cython))
goto __PYX_BAD;
45755 ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython);
if (unlikely(ret < 0))
goto __PYX_BAD;
45756 ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython);
if (unlikely(ret < 0))
goto __PYX_BAD;
45757 setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate);
45758 if (!setstate) PyErr_Clear();
45759 if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) {
45760 setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython);
if (unlikely(!setstate_cython))
goto __PYX_BAD;
45761 ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython);
if (unlikely(ret < 0))
goto __PYX_BAD;
45762 ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython);
if (unlikely(ret < 0))
goto __PYX_BAD;
45764 PyType_Modified((PyTypeObject*)type_obj);
45769 if (!PyErr_Occurred())
45770 PyErr_Format(PyExc_RuntimeError,
"Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name);
45773 #if !CYTHON_USE_PYTYPE_LOOKUP 45774 Py_XDECREF(object_reduce);
45775 Py_XDECREF(object_reduce_ex);
45777 Py_XDECREF(reduce);
45778 Py_XDECREF(reduce_ex);
45779 Py_XDECREF(reduce_cython);
45780 Py_XDECREF(setstate);
45781 Py_XDECREF(setstate_cython);
45786 #ifndef __PYX_HAVE_RT_ImportType 45787 #define __PYX_HAVE_RT_ImportType 45788 static PyTypeObject *__Pyx_ImportType(PyObject *module,
const char *module_name,
const char *class_name,
45789 size_t size,
enum __Pyx_ImportType_CheckSize check_size)
45791 PyObject *result = 0;
45793 Py_ssize_t basicsize;
45794 #ifdef Py_LIMITED_API 45795 PyObject *py_basicsize;
45797 result = PyObject_GetAttrString(module, class_name);
45800 if (!PyType_Check(result)) {
45801 PyErr_Format(PyExc_TypeError,
45802 "%.200s.%.200s is not a type object",
45803 module_name, class_name);
45806 #ifndef Py_LIMITED_API 45807 basicsize = ((PyTypeObject *)result)->tp_basicsize;
45809 py_basicsize = PyObject_GetAttrString(result,
"__basicsize__");
45812 basicsize = PyLong_AsSsize_t(py_basicsize);
45813 Py_DECREF(py_basicsize);
45815 if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
45818 if ((
size_t)basicsize < size) {
45819 PyErr_Format(PyExc_ValueError,
45820 "%.200s.%.200s size changed, may indicate binary incompatibility. " 45821 "Expected %zd from C header, got %zd from PyObject",
45822 module_name, class_name, size, basicsize);
45825 if (check_size == __Pyx_ImportType_CheckSize_Error && (
size_t)basicsize != size) {
45826 PyErr_Format(PyExc_ValueError,
45827 "%.200s.%.200s size changed, may indicate binary incompatibility. " 45828 "Expected %zd from C header, got %zd from PyObject",
45829 module_name, class_name, size, basicsize);
45832 else if (check_size == __Pyx_ImportType_CheckSize_Warn && (
size_t)basicsize > size) {
45833 PyOS_snprintf(warning,
sizeof(warning),
45834 "%s.%s size changed, may indicate binary incompatibility. " 45835 "Expected %zd from C header, got %zd from PyObject",
45836 module_name, class_name, size, basicsize);
45837 if (PyErr_WarnEx(NULL, warning, 0) < 0)
goto bad;
45839 return (PyTypeObject *)result;
45841 Py_XDECREF(result);
45847 #ifndef CYTHON_CLINE_IN_TRACEBACK 45848 static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate,
int c_line) {
45849 PyObject *use_cline;
45850 PyObject *ptype, *pvalue, *ptraceback;
45851 #if CYTHON_COMPILING_IN_CPYTHON 45852 PyObject **cython_runtime_dict;
45854 if (unlikely(!__pyx_cython_runtime)) {
45857 __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
45858 #if CYTHON_COMPILING_IN_CPYTHON 45859 cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime);
45860 if (likely(cython_runtime_dict)) {
45861 __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
45862 use_cline, *cython_runtime_dict,
45863 __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback))
45867 PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
45868 if (use_cline_obj) {
45869 use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
45870 Py_DECREF(use_cline_obj);
45878 PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
45880 else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
45883 __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
45889 static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries,
int count,
int code_line) {
45890 int start = 0, mid = 0, end = count - 1;
45891 if (end >= 0 && code_line > entries[end].code_line) {
45894 while (start < end) {
45895 mid = start + (end - start) / 2;
45896 if (code_line < entries[mid].code_line) {
45898 }
else if (code_line > entries[mid].code_line) {
45904 if (code_line <= entries[mid].code_line) {
45910 static PyCodeObject *__pyx_find_code_object(
int code_line) {
45911 PyCodeObject* code_object;
45913 if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
45916 pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
45917 if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
45920 code_object = __pyx_code_cache.entries[
pos].code_object;
45921 Py_INCREF(code_object);
45922 return code_object;
45924 static void __pyx_insert_code_object(
int code_line, PyCodeObject* code_object) {
45926 __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
45927 if (unlikely(!code_line)) {
45930 if (unlikely(!entries)) {
45931 entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*
sizeof(__Pyx_CodeObjectCacheEntry));
45932 if (likely(entries)) {
45933 __pyx_code_cache.entries = entries;
45934 __pyx_code_cache.max_count = 64;
45935 __pyx_code_cache.count = 1;
45936 entries[0].code_line = code_line;
45937 entries[0].code_object = code_object;
45938 Py_INCREF(code_object);
45942 pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
45943 if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
45944 PyCodeObject* tmp = entries[
pos].code_object;
45945 entries[
pos].code_object = code_object;
45949 if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
45950 int new_max = __pyx_code_cache.max_count + 64;
45951 entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
45952 __pyx_code_cache.entries, ((
size_t)new_max) *
sizeof(__Pyx_CodeObjectCacheEntry));
45953 if (unlikely(!entries)) {
45956 __pyx_code_cache.entries = entries;
45957 __pyx_code_cache.max_count = new_max;
45959 for (i=__pyx_code_cache.count; i>pos; i--) {
45960 entries[i] = entries[i-1];
45962 entries[
pos].code_line = code_line;
45963 entries[
pos].code_object = code_object;
45964 __pyx_code_cache.count++;
45965 Py_INCREF(code_object);
45969 #include "compile.h" 45970 #include "frameobject.h" 45971 #include "traceback.h" 45972 static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
45973 const char *funcname,
int c_line,
45974 int py_line,
const char *filename) {
45975 PyCodeObject *py_code = 0;
45976 PyObject *py_srcfile = 0;
45977 PyObject *py_funcname = 0;
45978 #if PY_MAJOR_VERSION < 3 45979 py_srcfile = PyString_FromString(filename);
45981 py_srcfile = PyUnicode_FromString(filename);
45983 if (!py_srcfile)
goto bad;
45985 #if PY_MAJOR_VERSION < 3 45986 py_funcname = PyString_FromFormat(
"%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
45988 py_funcname = PyUnicode_FromFormat(
"%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
45992 #if PY_MAJOR_VERSION < 3 45993 py_funcname = PyString_FromString(funcname);
45995 py_funcname = PyUnicode_FromString(funcname);
45998 if (!py_funcname)
goto bad;
45999 py_code = __Pyx_PyCode_New(
46016 Py_DECREF(py_srcfile);
46017 Py_DECREF(py_funcname);
46020 Py_XDECREF(py_srcfile);
46021 Py_XDECREF(py_funcname);
46024 static void __Pyx_AddTraceback(
const char *funcname,
int c_line,
46025 int py_line,
const char *filename) {
46026 PyCodeObject *py_code = 0;
46027 PyFrameObject *py_frame = 0;
46028 PyThreadState *tstate = __Pyx_PyThreadState_Current;
46030 c_line = __Pyx_CLineForTraceback(tstate, c_line);
46032 py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
46034 py_code = __Pyx_CreateCodeObjectForTraceback(
46035 funcname, c_line, py_line, filename);
46036 if (!py_code)
goto bad;
46037 __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
46039 py_frame = PyFrame_New(
46045 if (!py_frame)
goto bad;
46046 __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
46047 PyTraceBack_Here(py_frame);
46049 Py_XDECREF(py_code);
46050 Py_XDECREF(py_frame);
46053 #if PY_MAJOR_VERSION < 3 46054 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view,
int flags) {
46055 if (PyObject_CheckBuffer(obj))
return PyObject_GetBuffer(obj, view, flags);
46056 if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray))
return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags);
46057 if (__Pyx_TypeCheck(obj, __pyx_array_type))
return __pyx_array_getbuffer(obj, view, flags);
46058 if (__Pyx_TypeCheck(obj, __pyx_memoryview_type))
return __pyx_memoryview_getbuffer(obj, view, flags);
46059 PyErr_Format(PyExc_TypeError,
"'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name);
46062 static void __Pyx_ReleaseBuffer(Py_buffer *view) {
46063 PyObject *obj = view->obj;
46065 if (PyObject_CheckBuffer(obj)) {
46066 PyBuffer_Release(view);
46070 else if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view);
46079 __pyx_memviewslice_is_contig(
const __Pyx_memviewslice mvs,
char order,
int ndim)
46081 int i, index, step, start;
46082 Py_ssize_t itemsize = mvs.memview->view.itemsize;
46083 if (order ==
'F') {
46090 for (i = 0; i < ndim; i++) {
46091 index = start + step * i;
46092 if (mvs.suboffsets[index] >= 0 || mvs.strides[index] != itemsize)
46094 itemsize *= mvs.shape[index];
46101 __pyx_get_array_memory_extents(__Pyx_memviewslice *slice,
46102 void **out_start,
void **out_end,
46103 int ndim,
size_t itemsize)
46107 start = end = slice->data;
46108 for (i = 0; i < ndim; i++) {
46109 Py_ssize_t stride = slice->strides[i];
46110 Py_ssize_t extent = slice->shape[i];
46112 *out_start = *out_end = start;
46116 end += stride * (extent - 1);
46118 start += stride * (extent - 1);
46121 *out_start = start;
46122 *out_end = end + itemsize;
46125 __pyx_slices_overlap(__Pyx_memviewslice *slice1,
46126 __Pyx_memviewslice *slice2,
46127 int ndim,
size_t itemsize)
46129 void *start1, *end1, *start2, *end2;
46130 __pyx_get_array_memory_extents(slice1, &start1, &end1, ndim, itemsize);
46131 __pyx_get_array_memory_extents(slice2, &start2, &end2, ndim, itemsize);
46132 return (start1 < end2) && (start2 < end1);
46136 static CYTHON_INLINE PyObject *
46137 __pyx_capsule_create(
void *p, CYTHON_UNUSED
const char *sig)
46140 #if PY_VERSION_HEX >= 0x02070000 46141 cobj = PyCapsule_New(p, sig, NULL);
46143 cobj = PyCObject_FromVoidPtr(p, NULL);
46149 static CYTHON_INLINE
int __Pyx_Is_Little_Endian(
void)
46155 S.u32 = 0x01020304;
46156 return S.u8[0] == 4;
46160 static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
46161 __Pyx_BufFmt_StackElem* stack,
46162 __Pyx_TypeInfo* type) {
46163 stack[0].field = &ctx->root;
46164 stack[0].parent_offset = 0;
46165 ctx->root.type = type;
46166 ctx->root.name =
"buffer dtype";
46167 ctx->root.offset = 0;
46169 ctx->head->field = &ctx->root;
46170 ctx->fmt_offset = 0;
46171 ctx->head->parent_offset = 0;
46172 ctx->new_packmode =
'@';
46173 ctx->enc_packmode =
'@';
46174 ctx->new_count = 1;
46175 ctx->enc_count = 0;
46177 ctx->is_complex = 0;
46178 ctx->is_valid_array = 0;
46179 ctx->struct_alignment = 0;
46180 while (type->typegroup ==
'S') {
46182 ctx->head->field = type->fields;
46183 ctx->head->parent_offset = 0;
46184 type = type->fields->type;
46187 static int __Pyx_BufFmt_ParseNumber(
const char** ts) {
46189 const char* t = *ts;
46190 if (*t < '0' || *t >
'9') {
46193 count = *t++ -
'0';
46194 while (*t >=
'0' && *t <=
'9') {
46196 count += *t++ -
'0';
46202 static int __Pyx_BufFmt_ExpectNumber(
const char **ts) {
46203 int number = __Pyx_BufFmt_ParseNumber(ts);
46205 PyErr_Format(PyExc_ValueError,\
46206 "Does not understand character buffer dtype format string ('%c')", **ts);
46209 static void __Pyx_BufFmt_RaiseUnexpectedChar(
char ch) {
46210 PyErr_Format(PyExc_ValueError,
46211 "Unexpected format string character: '%c'", ch);
46213 static const char* __Pyx_BufFmt_DescribeTypeChar(
char ch,
int is_complex) {
46215 case '?':
return "'bool'";
46216 case 'c':
return "'char'";
46217 case 'b':
return "'signed char'";
46218 case 'B':
return "'unsigned char'";
46219 case 'h':
return "'short'";
46220 case 'H':
return "'unsigned short'";
46221 case 'i':
return "'int'";
46222 case 'I':
return "'unsigned int'";
46223 case 'l':
return "'long'";
46224 case 'L':
return "'unsigned long'";
46225 case 'q':
return "'long long'";
46226 case 'Q':
return "'unsigned long long'";
46227 case 'f':
return (is_complex ?
"'complex float'" :
"'float'");
46228 case 'd':
return (is_complex ?
"'complex double'" :
"'double'");
46229 case 'g':
return (is_complex ?
"'complex long double'" :
"'long double'");
46230 case 'T':
return "a struct";
46231 case 'O':
return "Python object";
46232 case 'P':
return "a pointer";
46233 case 's':
case 'p':
return "a string";
46234 case 0:
return "end";
46235 default:
return "unparseable format string";
46238 static size_t __Pyx_BufFmt_TypeCharToStandardSize(
char ch,
int is_complex) {
46240 case '?':
case 'c':
case 'b':
case 'B':
case 's':
case 'p':
return 1;
46241 case 'h':
case 'H':
return 2;
46242 case 'i':
case 'I':
case 'l':
case 'L':
return 4;
46243 case 'q':
case 'Q':
return 8;
46244 case 'f':
return (is_complex ? 8 : 4);
46245 case 'd':
return (is_complex ? 16 : 8);
46247 PyErr_SetString(PyExc_ValueError,
"Python does not define a standard format string size for long double ('g')..");
46250 case 'O':
case 'P':
return sizeof(
void*);
46252 __Pyx_BufFmt_RaiseUnexpectedChar(ch);
46256 static size_t __Pyx_BufFmt_TypeCharToNativeSize(
char ch,
int is_complex) {
46258 case '?':
case 'c':
case 'b':
case 'B':
case 's':
case 'p':
return 1;
46259 case 'h':
case 'H':
return sizeof(short);
46260 case 'i':
case 'I':
return sizeof(int);
46261 case 'l':
case 'L':
return sizeof(long);
46262 #ifdef HAVE_LONG_LONG 46263 case 'q':
case 'Q':
return sizeof(PY_LONG_LONG);
46265 case 'f':
return sizeof(float) * (is_complex ? 2 : 1);
46266 case 'd':
return sizeof(double) * (is_complex ? 2 : 1);
46267 case 'g':
return sizeof(
long double) * (is_complex ? 2 : 1);
46268 case 'O':
case 'P':
return sizeof(
void*);
46270 __Pyx_BufFmt_RaiseUnexpectedChar(ch);
46275 typedef struct {
char c;
short x; } __Pyx_st_short;
46276 typedef struct {
char c;
int x; } __Pyx_st_int;
46277 typedef struct {
char c;
long x; } __Pyx_st_long;
46278 typedef struct {
char c;
float x; } __Pyx_st_float;
46279 typedef struct {
char c;
double x; } __Pyx_st_double;
46280 typedef struct {
char c;
long double x; } __Pyx_st_longdouble;
46281 typedef struct {
char c;
void *x; } __Pyx_st_void_p;
46282 #ifdef HAVE_LONG_LONG 46283 typedef struct {
char c; PY_LONG_LONG x; } __Pyx_st_longlong;
46285 static size_t __Pyx_BufFmt_TypeCharToAlignment(
char ch, CYTHON_UNUSED
int is_complex) {
46287 case '?':
case 'c':
case 'b':
case 'B':
case 's':
case 'p':
return 1;
46288 case 'h':
case 'H':
return sizeof(__Pyx_st_short) -
sizeof(
short);
46289 case 'i':
case 'I':
return sizeof(__Pyx_st_int) -
sizeof(
int);
46290 case 'l':
case 'L':
return sizeof(__Pyx_st_long) -
sizeof(
long);
46291 #ifdef HAVE_LONG_LONG 46292 case 'q':
case 'Q':
return sizeof(__Pyx_st_longlong) -
sizeof(PY_LONG_LONG);
46294 case 'f':
return sizeof(__Pyx_st_float) -
sizeof(
float);
46295 case 'd':
return sizeof(__Pyx_st_double) -
sizeof(
double);
46296 case 'g':
return sizeof(__Pyx_st_longdouble) -
sizeof(
long double);
46297 case 'P':
case 'O':
return sizeof(__Pyx_st_void_p) -
sizeof(
void*);
46299 __Pyx_BufFmt_RaiseUnexpectedChar(ch);
46307 typedef struct {
short x;
char c; } __Pyx_pad_short;
46308 typedef struct {
int x;
char c; } __Pyx_pad_int;
46309 typedef struct {
long x;
char c; } __Pyx_pad_long;
46310 typedef struct {
float x;
char c; } __Pyx_pad_float;
46311 typedef struct {
double x;
char c; } __Pyx_pad_double;
46312 typedef struct {
long double x;
char c; } __Pyx_pad_longdouble;
46313 typedef struct {
void *x;
char c; } __Pyx_pad_void_p;
46314 #ifdef HAVE_LONG_LONG 46315 typedef struct { PY_LONG_LONG x;
char c; } __Pyx_pad_longlong;
46317 static size_t __Pyx_BufFmt_TypeCharToPadding(
char ch, CYTHON_UNUSED
int is_complex) {
46319 case '?':
case 'c':
case 'b':
case 'B':
case 's':
case 'p':
return 1;
46320 case 'h':
case 'H':
return sizeof(__Pyx_pad_short) -
sizeof(
short);
46321 case 'i':
case 'I':
return sizeof(__Pyx_pad_int) -
sizeof(
int);
46322 case 'l':
case 'L':
return sizeof(__Pyx_pad_long) -
sizeof(
long);
46323 #ifdef HAVE_LONG_LONG 46324 case 'q':
case 'Q':
return sizeof(__Pyx_pad_longlong) -
sizeof(PY_LONG_LONG);
46326 case 'f':
return sizeof(__Pyx_pad_float) -
sizeof(
float);
46327 case 'd':
return sizeof(__Pyx_pad_double) -
sizeof(
double);
46328 case 'g':
return sizeof(__Pyx_pad_longdouble) -
sizeof(
long double);
46329 case 'P':
case 'O':
return sizeof(__Pyx_pad_void_p) -
sizeof(
void*);
46331 __Pyx_BufFmt_RaiseUnexpectedChar(ch);
46335 static char __Pyx_BufFmt_TypeCharToGroup(
char ch,
int is_complex) {
46339 case 'b':
case 'h':
case 'i':
46340 case 'l':
case 'q':
case 's':
case 'p':
46342 case '?':
case 'B':
case 'H':
case 'I':
case 'L':
case 'Q':
46344 case 'f':
case 'd':
case 'g':
46345 return (is_complex ?
'C' :
'R');
46351 __Pyx_BufFmt_RaiseUnexpectedChar(ch);
46356 static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) {
46357 if (ctx->head == NULL || ctx->head->field == &ctx->root) {
46358 const char* expected;
46360 if (ctx->head == NULL) {
46364 expected = ctx->head->field->type->name;
46367 PyErr_Format(PyExc_ValueError,
46368 "Buffer dtype mismatch, expected %s%s%s but got %s",
46369 quote, expected, quote,
46370 __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex));
46372 __Pyx_StructField* field = ctx->head->field;
46373 __Pyx_StructField* parent = (ctx->head - 1)->field;
46374 PyErr_Format(PyExc_ValueError,
46375 "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'",
46376 field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex),
46377 parent->type->name, field->name);
46380 static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) {
46382 size_t size, offset, arraysize = 1;
46383 if (ctx->enc_type == 0)
return 0;
46384 if (ctx->head->field->type->arraysize[0]) {
46386 if (ctx->enc_type ==
's' || ctx->enc_type ==
'p') {
46387 ctx->is_valid_array = ctx->head->field->type->ndim == 1;
46389 if (ctx->enc_count != ctx->head->field->type->arraysize[0]) {
46390 PyErr_Format(PyExc_ValueError,
46391 "Expected a dimension of size %zu, got %zu",
46392 ctx->head->field->type->arraysize[0], ctx->enc_count);
46396 if (!ctx->is_valid_array) {
46397 PyErr_Format(PyExc_ValueError,
"Expected %d dimensions, got %d",
46398 ctx->head->field->type->ndim, ndim);
46401 for (i = 0; i < ctx->head->field->type->ndim; i++) {
46402 arraysize *= ctx->head->field->type->arraysize[i];
46404 ctx->is_valid_array = 0;
46405 ctx->enc_count = 1;
46407 group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex);
46409 __Pyx_StructField* field = ctx->head->field;
46410 __Pyx_TypeInfo* type = field->type;
46411 if (ctx->enc_packmode ==
'@' || ctx->enc_packmode ==
'^') {
46412 size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex);
46414 size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex);
46416 if (ctx->enc_packmode ==
'@') {
46417 size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex);
46418 size_t align_mod_offset;
46419 if (align_at == 0)
return -1;
46420 align_mod_offset = ctx->fmt_offset % align_at;
46421 if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset;
46422 if (ctx->struct_alignment == 0)
46423 ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type,
46426 if (type->size != size || type->typegroup != group) {
46427 if (type->typegroup ==
'C' && type->fields != NULL) {
46428 size_t parent_offset = ctx->head->parent_offset + field->offset;
46430 ctx->head->field = type->fields;
46431 ctx->head->parent_offset = parent_offset;
46434 if ((type->typegroup ==
'H' || group ==
'H') && type->size == size) {
46436 __Pyx_BufFmt_RaiseExpected(ctx);
46440 offset = ctx->head->parent_offset + field->offset;
46441 if (ctx->fmt_offset != offset) {
46442 PyErr_Format(PyExc_ValueError,
46443 "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T
"d but %" CYTHON_FORMAT_SSIZE_T
"d expected",
46444 (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset);
46447 ctx->fmt_offset += size;
46449 ctx->fmt_offset += (arraysize - 1) * size;
46452 if (field == &ctx->root) {
46454 if (ctx->enc_count != 0) {
46455 __Pyx_BufFmt_RaiseExpected(ctx);
46460 ctx->head->field = ++field;
46461 if (field->type == NULL) {
46463 field = ctx->head->field;
46465 }
else if (field->type->typegroup ==
'S') {
46466 size_t parent_offset = ctx->head->parent_offset + field->offset;
46467 if (field->type->fields->type == NULL)
continue;
46468 field = field->type->fields;
46470 ctx->head->field = field;
46471 ctx->head->parent_offset = parent_offset;
46477 }
while (ctx->enc_count);
46479 ctx->is_complex = 0;
46483 __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx,
const char** tsp)
46485 const char *ts = *tsp;
46487 int ndim = ctx->head->field->type->ndim;
46490 if (ctx->new_count != 1) {
46491 PyErr_SetString(PyExc_ValueError,
46492 "Cannot handle repeated arrays in format string");
46495 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1)
return NULL;
46496 while (*ts && *ts !=
')') {
46498 case ' ':
case '\f':
case '\r':
case '\n':
case '\t':
case '\v':
continue;
46501 number = __Pyx_BufFmt_ExpectNumber(&ts);
46502 if (
number == -1)
return NULL;
46503 if (i < ndim && (
size_t)
number != ctx->head->field->type->arraysize[i])
46504 return PyErr_Format(PyExc_ValueError,
46505 "Expected a dimension of size %zu, got %d",
46506 ctx->head->field->type->arraysize[i],
number);
46507 if (*ts !=
',' && *ts !=
')')
46508 return PyErr_Format(PyExc_ValueError,
46509 "Expected a comma in format string, got '%c'", *ts);
46510 if (*ts ==
',') ts++;
46514 return PyErr_Format(PyExc_ValueError,
"Expected %d dimension(s), got %d",
46515 ctx->head->field->type->ndim, i);
46517 PyErr_SetString(PyExc_ValueError,
46518 "Unexpected end of format string, expected ')'");
46521 ctx->is_valid_array = 1;
46522 ctx->new_count = 1;
46526 static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx,
const char* ts) {
46531 if (ctx->enc_type != 0 && ctx->head == NULL) {
46532 __Pyx_BufFmt_RaiseExpected(ctx);
46535 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1)
return NULL;
46536 if (ctx->head != NULL) {
46537 __Pyx_BufFmt_RaiseExpected(ctx);
46547 if (!__Pyx_Is_Little_Endian()) {
46548 PyErr_SetString(PyExc_ValueError,
"Little-endian buffer not supported on big-endian compiler");
46551 ctx->new_packmode =
'=';
46556 if (__Pyx_Is_Little_Endian()) {
46557 PyErr_SetString(PyExc_ValueError,
"Big-endian buffer not supported on little-endian compiler");
46560 ctx->new_packmode =
'=';
46566 ctx->new_packmode = *ts++;
46570 const char* ts_after_sub;
46571 size_t i, struct_count = ctx->new_count;
46572 size_t struct_alignment = ctx->struct_alignment;
46573 ctx->new_count = 1;
46576 PyErr_SetString(PyExc_ValueError,
"Buffer acquisition: Expected '{' after 'T'");
46579 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1)
return NULL;
46581 ctx->enc_count = 0;
46582 ctx->struct_alignment = 0;
46585 for (i = 0; i != struct_count; ++i) {
46586 ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts);
46587 if (!ts_after_sub)
return NULL;
46590 if (struct_alignment) ctx->struct_alignment = struct_alignment;
46595 size_t alignment = ctx->struct_alignment;
46597 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1)
return NULL;
46599 if (alignment && ctx->fmt_offset % alignment) {
46600 ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment);
46605 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1)
return NULL;
46606 ctx->fmt_offset += ctx->new_count;
46607 ctx->new_count = 1;
46608 ctx->enc_count = 0;
46610 ctx->enc_packmode = ctx->new_packmode;
46616 if (*ts !=
'f' && *ts !=
'd' && *ts !=
'g') {
46617 __Pyx_BufFmt_RaiseUnexpectedChar(
'Z');
46620 CYTHON_FALLTHROUGH;
46621 case '?':
case 'c':
case 'b':
case 'B':
case 'h':
case 'H':
case 'i':
case 'I':
46622 case 'l':
case 'L':
case 'q':
case 'Q':
46623 case 'f':
case 'd':
case 'g':
46624 case 'O':
case 'p':
46625 if (ctx->enc_type == *ts && got_Z == ctx->is_complex &&
46626 ctx->enc_packmode == ctx->new_packmode) {
46627 ctx->enc_count += ctx->new_count;
46628 ctx->new_count = 1;
46633 CYTHON_FALLTHROUGH;
46635 if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1)
return NULL;
46636 ctx->enc_count = ctx->new_count;
46637 ctx->enc_packmode = ctx->new_packmode;
46638 ctx->enc_type = *ts;
46639 ctx->is_complex = got_Z;
46641 ctx->new_count = 1;
46646 while(*ts !=
':') ++ts;
46650 if (!__pyx_buffmt_parse_array(ctx, &ts))
return NULL;
46654 int number = __Pyx_BufFmt_ExpectNumber(&ts);
46655 if (number == -1)
return NULL;
46656 ctx->new_count = (size_t)number;
46664 __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b)
46671 if (a->size != b->size || a->typegroup != b->typegroup ||
46672 a->is_unsigned != b->is_unsigned || a->ndim != b->ndim) {
46673 if (a->typegroup ==
'H' || b->typegroup ==
'H') {
46674 return a->size == b->size;
46680 for (i = 0; i < a->ndim; i++)
46681 if (a->arraysize[i] != b->arraysize[i])
46684 if (a->typegroup ==
'S') {
46685 if (a->flags != b->flags)
46687 if (a->fields || b->fields) {
46688 if (!(a->fields && b->fields))
46690 for (i = 0; a->fields[i].type && b->fields[i].type; i++) {
46691 __Pyx_StructField *field_a = a->fields + i;
46692 __Pyx_StructField *field_b = b->fields + i;
46693 if (field_a->offset != field_b->offset ||
46694 !__pyx_typeinfo_cmp(field_a->type, field_b->type))
46697 return !a->fields[i].type && !b->fields[i].type;
46705 __pyx_check_strides(Py_buffer *buf,
int dim,
int ndim,
int spec)
46707 if (buf->shape[dim] <= 1)
46709 if (buf->strides) {
46710 if (spec & __Pyx_MEMVIEW_CONTIG) {
46711 if (spec & (__Pyx_MEMVIEW_PTR|__Pyx_MEMVIEW_FULL)) {
46712 if (buf->strides[dim] !=
sizeof(
void *)) {
46713 PyErr_Format(PyExc_ValueError,
46714 "Buffer is not indirectly contiguous " 46715 "in dimension %d.", dim);
46718 }
else if (buf->strides[dim] != buf->itemsize) {
46719 PyErr_SetString(PyExc_ValueError,
46720 "Buffer and memoryview are not contiguous " 46721 "in the same dimension.");
46725 if (spec & __Pyx_MEMVIEW_FOLLOW) {
46726 Py_ssize_t stride = buf->strides[dim];
46729 if (stride < buf->itemsize) {
46730 PyErr_SetString(PyExc_ValueError,
46731 "Buffer and memoryview are not contiguous " 46732 "in the same dimension.");
46737 if (spec & __Pyx_MEMVIEW_CONTIG && dim != ndim - 1) {
46738 PyErr_Format(PyExc_ValueError,
46739 "C-contiguous buffer is not contiguous in " 46740 "dimension %d", dim);
46742 }
else if (spec & (__Pyx_MEMVIEW_PTR)) {
46743 PyErr_Format(PyExc_ValueError,
46744 "C-contiguous buffer is not indirect in " 46745 "dimension %d", dim);
46747 }
else if (buf->suboffsets) {
46748 PyErr_SetString(PyExc_ValueError,
46749 "Buffer exposes suboffsets but no strides");
46758 __pyx_check_suboffsets(Py_buffer *buf,
int dim, CYTHON_UNUSED
int ndim,
int spec)
46760 if (spec & __Pyx_MEMVIEW_DIRECT) {
46761 if (buf->suboffsets && buf->suboffsets[dim] >= 0) {
46762 PyErr_Format(PyExc_ValueError,
46763 "Buffer not compatible with direct access " 46764 "in dimension %d.", dim);
46768 if (spec & __Pyx_MEMVIEW_PTR) {
46769 if (!buf->suboffsets || (buf->suboffsets[dim] < 0)) {
46770 PyErr_Format(PyExc_ValueError,
46771 "Buffer is not indirectly accessible " 46772 "in dimension %d.", dim);
46781 __pyx_verify_contig(Py_buffer *buf,
int ndim,
int c_or_f_flag)
46784 if (c_or_f_flag & __Pyx_IS_F_CONTIG) {
46785 Py_ssize_t stride = 1;
46786 for (i = 0; i < ndim; i++) {
46787 if (stride * buf->itemsize != buf->strides[i] &&
46790 PyErr_SetString(PyExc_ValueError,
46791 "Buffer not fortran contiguous.");
46794 stride = stride * buf->shape[i];
46796 }
else if (c_or_f_flag & __Pyx_IS_C_CONTIG) {
46797 Py_ssize_t stride = 1;
46798 for (i = ndim - 1; i >- 1; i--) {
46799 if (stride * buf->itemsize != buf->strides[i] &&
46800 buf->shape[i] > 1) {
46801 PyErr_SetString(PyExc_ValueError,
46802 "Buffer not C contiguous.");
46805 stride = stride * buf->shape[i];
46812 static int __Pyx_ValidateAndInit_memviewslice(
46817 __Pyx_TypeInfo *dtype,
46818 __Pyx_BufFmt_StackElem stack[],
46819 __Pyx_memviewslice *memviewslice,
46820 PyObject *original_obj)
46822 struct __pyx_memoryview_obj *memview, *new_memview;
46823 __Pyx_RefNannyDeclarations
46825 int i, spec = 0, retval = -1;
46826 __Pyx_BufFmt_Context ctx;
46827 int from_memoryview = __pyx_memoryview_check(original_obj);
46828 __Pyx_RefNannySetupContext(
"ValidateAndInit_memviewslice", 0);
46829 if (from_memoryview && __pyx_typeinfo_cmp(dtype, ((
struct __pyx_memoryview_obj *)
46830 original_obj)->typeinfo)) {
46831 memview = (
struct __pyx_memoryview_obj *) original_obj;
46832 new_memview = NULL;
46834 memview = (
struct __pyx_memoryview_obj *) __pyx_memoryview_new(
46835 original_obj, buf_flags, 0, dtype);
46836 new_memview = memview;
46837 if (unlikely(!memview))
46840 buf = &memview->view;
46841 if (buf->ndim != ndim) {
46842 PyErr_Format(PyExc_ValueError,
46843 "Buffer has wrong number of dimensions (expected %d, got %d)",
46848 __Pyx_BufFmt_Init(&ctx, stack, dtype);
46849 if (!__Pyx_BufFmt_CheckString(&ctx, buf->format))
goto fail;
46851 if ((
unsigned) buf->itemsize != dtype->size) {
46852 PyErr_Format(PyExc_ValueError,
46853 "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T
"u byte%s) " 46854 "does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T
"u byte%s)",
46856 (buf->itemsize > 1) ?
"s" :
"",
46859 (dtype->size > 1) ?
"s" :
"");
46862 for (i = 0; i < ndim; i++) {
46863 spec = axes_specs[i];
46864 if (!__pyx_check_strides(buf, i, ndim, spec))
46866 if (!__pyx_check_suboffsets(buf, i, ndim, spec))
46869 if (buf->strides && !__pyx_verify_contig(buf, ndim, c_or_f_flag))
46871 if (unlikely(__Pyx_init_memviewslice(memview, ndim, memviewslice,
46872 new_memview != NULL) == -1)) {
46878 Py_XDECREF(new_memview);
46881 __Pyx_RefNannyFinishContext();
46886 static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_double(PyObject *obj,
int writable_flag) {
46887 __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
46888 __Pyx_BufFmt_StackElem stack[1];
46889 int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
46891 if (obj == Py_None) {
46892 result.memview = (
struct __pyx_memoryview_obj *) Py_None;
46895 retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
46896 PyBUF_RECORDS_RO | writable_flag, 2,
46897 &__Pyx_TypeInfo_double, stack,
46899 if (unlikely(retcode == -1))
46903 result.memview = NULL;
46904 result.data = NULL;
46909 static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_int(PyObject *obj,
int writable_flag) {
46910 __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
46911 __Pyx_BufFmt_StackElem stack[1];
46912 int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
46914 if (obj == Py_None) {
46915 result.memview = (
struct __pyx_memoryview_obj *) Py_None;
46918 retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
46919 PyBUF_RECORDS_RO | writable_flag, 1,
46920 &__Pyx_TypeInfo_int, stack,
46922 if (unlikely(retcode == -1))
46926 result.memview = NULL;
46927 result.data = NULL;
46932 #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ 46933 __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) 46934 #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ 46935 __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) 46936 #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ 46938 func_type value = func_value;\ 46939 if (sizeof(target_type) < sizeof(func_type)) {\ 46940 if (unlikely(value != (func_type) (target_type) value)) {\ 46941 func_type zero = 0;\ 46942 if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ 46943 return (target_type) -1;\ 46944 if (is_unsigned && unlikely(value < zero))\ 46945 goto raise_neg_overflow;\ 46947 goto raise_overflow;\ 46950 return (target_type) value;\ 46954 static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_double(PyObject *obj,
int writable_flag) {
46955 __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
46956 __Pyx_BufFmt_StackElem stack[1];
46957 int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
46959 if (obj == Py_None) {
46960 result.memview = (
struct __pyx_memoryview_obj *) Py_None;
46963 retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
46964 PyBUF_RECORDS_RO | writable_flag, 1,
46965 &__Pyx_TypeInfo_double, stack,
46967 if (unlikely(retcode == -1))
46971 result.memview = NULL;
46972 result.data = NULL;
46977 static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_int(PyObject *obj,
int writable_flag) {
46978 __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
46979 __Pyx_BufFmt_StackElem stack[1];
46980 int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
46982 if (obj == Py_None) {
46983 result.memview = (
struct __pyx_memoryview_obj *) Py_None;
46986 retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
46987 PyBUF_RECORDS_RO | writable_flag, 2,
46988 &__Pyx_TypeInfo_int, stack,
46990 if (unlikely(retcode == -1))
46994 result.memview = NULL;
46995 result.data = NULL;
47000 static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsdsdsds_double(PyObject *obj,
int writable_flag) {
47001 __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
47002 __Pyx_BufFmt_StackElem stack[1];
47003 int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
47005 if (obj == Py_None) {
47006 result.memview = (
struct __pyx_memoryview_obj *) Py_None;
47009 retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
47010 PyBUF_RECORDS_RO | writable_flag, 4,
47011 &__Pyx_TypeInfo_double, stack,
47013 if (unlikely(retcode == -1))
47017 result.memview = NULL;
47018 result.data = NULL;
47023 static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsdsds_double(PyObject *obj,
int writable_flag) {
47024 __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
47025 __Pyx_BufFmt_StackElem stack[1];
47026 int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
47028 if (obj == Py_None) {
47029 result.memview = (
struct __pyx_memoryview_obj *) Py_None;
47032 retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
47033 PyBUF_RECORDS_RO | writable_flag, 3,
47034 &__Pyx_TypeInfo_double, stack,
47036 if (unlikely(retcode == -1))
47040 result.memview = NULL;
47041 result.data = NULL;
47046 static CYTHON_INLINE PyObject *__pyx_memview_get_double(
const char *itemp) {
47047 return (PyObject *) PyFloat_FromDouble(*(
double *) itemp);
47049 static CYTHON_INLINE
int __pyx_memview_set_double(
const char *itemp, PyObject *obj) {
47050 double value = __pyx_PyFloat_AsDouble(obj);
47051 if ((value == (
double)-1) && PyErr_Occurred())
47053 *(
double *) itemp = value;
47058 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(
int value) {
47059 const int neg_one = (int) ((
int) 0 - (int) 1), const_zero = (int) 0;
47060 const int is_unsigned = neg_one > const_zero;
47062 if (
sizeof(
int) <
sizeof(long)) {
47063 return PyInt_FromLong((
long) value);
47064 }
else if (
sizeof(
int) <=
sizeof(
unsigned long)) {
47065 return PyLong_FromUnsignedLong((
unsigned long) value);
47066 #ifdef HAVE_LONG_LONG 47067 }
else if (
sizeof(
int) <=
sizeof(
unsigned PY_LONG_LONG)) {
47068 return PyLong_FromUnsignedLongLong((
unsigned PY_LONG_LONG) value);
47072 if (
sizeof(
int) <=
sizeof(
long)) {
47073 return PyInt_FromLong((
long) value);
47074 #ifdef HAVE_LONG_LONG 47075 }
else if (
sizeof(
int) <=
sizeof(PY_LONG_LONG)) {
47076 return PyLong_FromLongLong((PY_LONG_LONG) value);
47081 int one = 1;
int little = (int)*(
unsigned char *)&one;
47082 unsigned char *bytes = (
unsigned char *)&value;
47083 return _PyLong_FromByteArray(bytes,
sizeof(
int),
47084 little, !is_unsigned);
47089 static CYTHON_INLINE PyObject *__pyx_memview_get_int(
const char *itemp) {
47090 return (PyObject *) __Pyx_PyInt_From_int(*(
int *) itemp);
47092 static CYTHON_INLINE
int __pyx_memview_set_int(
const char *itemp, PyObject *obj) {
47093 int value = __Pyx_PyInt_As_int(obj);
47094 if ((value == (
int)-1) && PyErr_Occurred())
47096 *(
int *) itemp = value;
47101 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(
long value) {
47102 const long neg_one = (long) ((
long) 0 - (long) 1), const_zero = (long) 0;
47103 const int is_unsigned = neg_one > const_zero;
47105 if (
sizeof(
long) <
sizeof(long)) {
47106 return PyInt_FromLong((
long) value);
47107 }
else if (
sizeof(
long) <=
sizeof(
unsigned long)) {
47108 return PyLong_FromUnsignedLong((
unsigned long) value);
47109 #ifdef HAVE_LONG_LONG 47110 }
else if (
sizeof(
long) <=
sizeof(
unsigned PY_LONG_LONG)) {
47111 return PyLong_FromUnsignedLongLong((
unsigned PY_LONG_LONG) value);
47115 if (
sizeof(
long) <=
sizeof(
long)) {
47116 return PyInt_FromLong((
long) value);
47117 #ifdef HAVE_LONG_LONG 47118 }
else if (
sizeof(
long) <=
sizeof(PY_LONG_LONG)) {
47119 return PyLong_FromLongLong((PY_LONG_LONG) value);
47124 int one = 1;
int little = (int)*(
unsigned char *)&one;
47125 unsigned char *bytes = (
unsigned char *)&value;
47126 return _PyLong_FromByteArray(bytes,
sizeof(
long),
47127 little, !is_unsigned);
47132 #if CYTHON_CCOMPLEX 47134 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(
float x,
float y) {
47135 return ::std::complex< float >(x, y);
47138 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(
float x,
float y) {
47139 return x + y*(__pyx_t_float_complex)_Complex_I;
47143 static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(
float x,
float y) {
47144 __pyx_t_float_complex
z;
47152 #if CYTHON_CCOMPLEX 47154 static CYTHON_INLINE
int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
47155 return (a.real == b.real) && (a.imag == b.imag);
47157 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
47158 __pyx_t_float_complex
z;
47159 z.real = a.real + b.real;
47160 z.imag = a.imag + b.imag;
47163 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
47164 __pyx_t_float_complex
z;
47165 z.real = a.real - b.real;
47166 z.imag = a.imag - b.imag;
47169 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
47170 __pyx_t_float_complex
z;
47171 z.real = a.real * b.real - a.imag * b.imag;
47172 z.imag = a.real * b.imag + a.imag * b.real;
47176 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
47178 return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
47179 }
else if (fabsf(b.real) >= fabsf(b.imag)) {
47180 if (b.real == 0 && b.imag == 0) {
47181 return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag);
47183 float r = b.imag / b.real;
47184 float s = (float)(1.0) / (b.real + b.imag *
r);
47185 return __pyx_t_float_complex_from_parts(
47186 (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
47189 float r = b.real / b.imag;
47190 float s = (float)(1.0) / (b.imag + b.real *
r);
47191 return __pyx_t_float_complex_from_parts(
47192 (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
47196 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
47198 return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
47200 float denom = b.real * b.real + b.imag * b.imag;
47201 return __pyx_t_float_complex_from_parts(
47202 (a.real * b.real + a.imag * b.imag) / denom,
47203 (a.imag * b.real - a.real * b.imag) / denom);
47207 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) {
47208 __pyx_t_float_complex
z;
47213 static CYTHON_INLINE
int __Pyx_c_is_zero_float(__pyx_t_float_complex a) {
47214 return (a.real == 0) && (a.imag == 0);
47216 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) {
47217 __pyx_t_float_complex
z;
47223 static CYTHON_INLINE
float __Pyx_c_abs_float(__pyx_t_float_complex
z) {
47224 #if !defined(HAVE_HYPOT) || defined(_MSC_VER) 47225 return sqrtf(z.real*z.real + z.imag*z.imag);
47227 return hypotf(z.real, z.imag);
47230 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
47231 __pyx_t_float_complex
z;
47232 float r, lnr, theta, z_r, z_theta;
47233 if (b.imag == 0 && b.real == (
int)b.real) {
47235 float denom = a.real * a.real + a.imag * a.imag;
47236 a.real = a.real / denom;
47237 a.imag = -a.imag / denom;
47240 switch ((
int)b.real) {
47248 return __Pyx_c_prod_float(a, a);
47250 z = __Pyx_c_prod_float(a, a);
47251 return __Pyx_c_prod_float(z, a);
47253 z = __Pyx_c_prod_float(a, a);
47254 return __Pyx_c_prod_float(z, z);
47260 }
else if (b.imag == 0) {
47261 z.real = powf(a.real, b.real);
47264 }
else if (a.real > 0) {
47269 theta = atan2f(0.0, -1.0);
47272 r = __Pyx_c_abs_float(a);
47273 theta = atan2f(a.imag, a.real);
47276 z_r = expf(lnr * b.real - theta * b.imag);
47277 z_theta = theta * b.real + lnr * b.imag;
47278 z.real = z_r * cosf(z_theta);
47279 z.imag = z_r * sinf(z_theta);
47286 #if CYTHON_CCOMPLEX 47288 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(
double x,
double y) {
47289 return ::std::complex< double >(x, y);
47292 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(
double x,
double y) {
47293 return x + y*(__pyx_t_double_complex)_Complex_I;
47297 static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(
double x,
double y) {
47298 __pyx_t_double_complex
z;
47306 #if CYTHON_CCOMPLEX 47308 static CYTHON_INLINE
int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
47309 return (a.real == b.real) && (a.imag == b.imag);
47311 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
47312 __pyx_t_double_complex
z;
47313 z.real = a.real + b.real;
47314 z.imag = a.imag + b.imag;
47317 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
47318 __pyx_t_double_complex
z;
47319 z.real = a.real - b.real;
47320 z.imag = a.imag - b.imag;
47323 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
47324 __pyx_t_double_complex
z;
47325 z.real = a.real * b.real - a.imag * b.imag;
47326 z.imag = a.real * b.imag + a.imag * b.real;
47330 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
47332 return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
47333 }
else if (fabs(b.real) >= fabs(b.imag)) {
47334 if (b.real == 0 && b.imag == 0) {
47335 return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
47337 double r = b.imag / b.real;
47338 double s = (double)(1.0) / (b.real + b.imag *
r);
47339 return __pyx_t_double_complex_from_parts(
47340 (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
47343 double r = b.real / b.imag;
47344 double s = (double)(1.0) / (b.imag + b.real *
r);
47345 return __pyx_t_double_complex_from_parts(
47346 (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
47350 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
47352 return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
47354 double denom = b.real * b.real + b.imag * b.imag;
47355 return __pyx_t_double_complex_from_parts(
47356 (a.real * b.real + a.imag * b.imag) / denom,
47357 (a.imag * b.real - a.real * b.imag) / denom);
47361 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) {
47362 __pyx_t_double_complex
z;
47367 static CYTHON_INLINE
int __Pyx_c_is_zero_double(__pyx_t_double_complex a) {
47368 return (a.real == 0) && (a.imag == 0);
47370 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) {
47371 __pyx_t_double_complex
z;
47377 static CYTHON_INLINE
double __Pyx_c_abs_double(__pyx_t_double_complex
z) {
47378 #if !defined(HAVE_HYPOT) || defined(_MSC_VER) 47379 return sqrt(z.real*z.real + z.imag*z.imag);
47381 return hypot(z.real, z.imag);
47384 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
47385 __pyx_t_double_complex
z;
47386 double r, lnr, theta, z_r, z_theta;
47387 if (b.imag == 0 && b.real == (
int)b.real) {
47389 double denom = a.real * a.real + a.imag * a.imag;
47390 a.real = a.real / denom;
47391 a.imag = -a.imag / denom;
47394 switch ((
int)b.real) {
47402 return __Pyx_c_prod_double(a, a);
47404 z = __Pyx_c_prod_double(a, a);
47405 return __Pyx_c_prod_double(z, a);
47407 z = __Pyx_c_prod_double(a, a);
47408 return __Pyx_c_prod_double(z, z);
47414 }
else if (b.imag == 0) {
47415 z.real = pow(a.real, b.real);
47418 }
else if (a.real > 0) {
47423 theta = atan2(0.0, -1.0);
47426 r = __Pyx_c_abs_double(a);
47427 theta = atan2(a.imag, a.real);
47430 z_r = exp(lnr * b.real - theta * b.imag);
47431 z_theta = theta * b.real + lnr * b.imag;
47432 z.real = z_r * cos(z_theta);
47433 z.imag = z_r * sin(z_theta);
47440 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(
enum NPY_TYPES value) {
47441 const enum NPY_TYPES neg_one = (
enum NPY_TYPES) ((
enum NPY_TYPES) 0 - (
enum NPY_TYPES) 1), const_zero = (
enum NPY_TYPES) 0;
47442 const int is_unsigned = neg_one > const_zero;
47444 if (
sizeof(
enum NPY_TYPES) <
sizeof(long)) {
47445 return PyInt_FromLong((
long) value);
47446 }
else if (
sizeof(
enum NPY_TYPES) <=
sizeof(
unsigned long)) {
47447 return PyLong_FromUnsignedLong((
unsigned long) value);
47448 #ifdef HAVE_LONG_LONG 47449 }
else if (
sizeof(
enum NPY_TYPES) <=
sizeof(
unsigned PY_LONG_LONG)) {
47450 return PyLong_FromUnsignedLongLong((
unsigned PY_LONG_LONG) value);
47454 if (
sizeof(
enum NPY_TYPES) <=
sizeof(
long)) {
47455 return PyInt_FromLong((
long) value);
47456 #ifdef HAVE_LONG_LONG 47457 }
else if (
sizeof(
enum NPY_TYPES) <=
sizeof(PY_LONG_LONG)) {
47458 return PyLong_FromLongLong((PY_LONG_LONG) value);
47463 int one = 1;
int little = (int)*(
unsigned char *)&one;
47464 unsigned char *bytes = (
unsigned char *)&value;
47465 return _PyLong_FromByteArray(bytes,
sizeof(
enum NPY_TYPES),
47466 little, !is_unsigned);
47471 static __Pyx_memviewslice
47472 __pyx_memoryview_copy_new_contig(
const __Pyx_memviewslice *from_mvs,
47473 const char *mode,
int ndim,
47474 size_t sizeof_dtype,
int contig_flag,
47475 int dtype_is_object)
47477 __Pyx_RefNannyDeclarations
47479 __Pyx_memviewslice new_mvs = { 0, 0, { 0 }, { 0 }, { 0 } };
47480 struct __pyx_memoryview_obj *from_memview = from_mvs->memview;
47481 Py_buffer *buf = &from_memview->view;
47482 PyObject *shape_tuple = NULL;
47483 PyObject *temp_int = NULL;
47484 struct __pyx_array_obj *array_obj = NULL;
47485 struct __pyx_memoryview_obj *memview_obj = NULL;
47486 __Pyx_RefNannySetupContext(
"__pyx_memoryview_copy_new_contig", 0);
47487 for (i = 0; i < ndim; i++) {
47488 if (from_mvs->suboffsets[i] >= 0) {
47489 PyErr_Format(PyExc_ValueError,
"Cannot copy memoryview slice with " 47490 "indirect dimensions (axis %d)", i);
47494 shape_tuple = PyTuple_New(ndim);
47495 if (unlikely(!shape_tuple)) {
47498 __Pyx_GOTREF(shape_tuple);
47499 for(i = 0; i < ndim; i++) {
47500 temp_int = PyInt_FromSsize_t(from_mvs->shape[i]);
47501 if(unlikely(!temp_int)) {
47504 PyTuple_SET_ITEM(shape_tuple, i, temp_int);
47508 array_obj = __pyx_array_new(shape_tuple, sizeof_dtype, buf->format, (
char *) mode, NULL);
47509 if (unlikely(!array_obj)) {
47512 __Pyx_GOTREF(array_obj);
47513 memview_obj = (
struct __pyx_memoryview_obj *) __pyx_memoryview_new(
47514 (PyObject *) array_obj, contig_flag,
47516 from_mvs->memview->typeinfo);
47517 if (unlikely(!memview_obj))
47519 if (unlikely(__Pyx_init_memviewslice(memview_obj, ndim, &new_mvs, 1) < 0))
47521 if (unlikely(__pyx_memoryview_copy_contents(*from_mvs, new_mvs, ndim, ndim,
47522 dtype_is_object) < 0))
47526 __Pyx_XDECREF(new_mvs.memview);
47527 new_mvs.memview = NULL;
47528 new_mvs.data = NULL;
47530 __Pyx_XDECREF(shape_tuple);
47531 __Pyx_XDECREF(temp_int);
47532 __Pyx_XDECREF(array_obj);
47533 __Pyx_RefNannyFinishContext();
47538 static CYTHON_INLINE
int __Pyx_PyInt_As_int(PyObject *x) {
47539 const int neg_one = (int) ((
int) 0 - (int) 1), const_zero = (int) 0;
47540 const int is_unsigned = neg_one > const_zero;
47541 #if PY_MAJOR_VERSION < 3 47542 if (likely(PyInt_Check(x))) {
47543 if (
sizeof(
int) <
sizeof(long)) {
47544 __PYX_VERIFY_RETURN_INT(
int,
long, PyInt_AS_LONG(x))
47546 long val = PyInt_AS_LONG(x);
47547 if (is_unsigned && unlikely(val < 0)) {
47548 goto raise_neg_overflow;
47554 if (likely(PyLong_Check(x))) {
47556 #if CYTHON_USE_PYLONG_INTERNALS 47557 const digit* digits = ((PyLongObject*)x)->ob_digit;
47558 switch (Py_SIZE(x)) {
47559 case 0:
return (
int) 0;
47560 case 1: __PYX_VERIFY_RETURN_INT(
int, digit, digits[0])
47562 if (8 *
sizeof(
int) > 1 * PyLong_SHIFT) {
47563 if (8 *
sizeof(
unsigned long) > 2 * PyLong_SHIFT) {
47564 __PYX_VERIFY_RETURN_INT(
int,
unsigned long, (((((
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47565 }
else if (8 *
sizeof(
int) >= 2 * PyLong_SHIFT) {
47566 return (
int) (((((int)digits[1]) << PyLong_SHIFT) | (
int)digits[0]));
47571 if (8 *
sizeof(
int) > 2 * PyLong_SHIFT) {
47572 if (8 *
sizeof(
unsigned long) > 3 * PyLong_SHIFT) {
47573 __PYX_VERIFY_RETURN_INT(
int,
unsigned long, (((((((
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47574 }
else if (8 *
sizeof(
int) >= 3 * PyLong_SHIFT) {
47575 return (
int) (((((((int)digits[2]) << PyLong_SHIFT) | (
int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
47580 if (8 *
sizeof(
int) > 3 * PyLong_SHIFT) {
47581 if (8 *
sizeof(
unsigned long) > 4 * PyLong_SHIFT) {
47582 __PYX_VERIFY_RETURN_INT(
int,
unsigned long, (((((((((
unsigned long)digits[3]) << PyLong_SHIFT) | (
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47583 }
else if (8 *
sizeof(
int) >= 4 * PyLong_SHIFT) {
47584 return (
int) (((((((((int)digits[3]) << PyLong_SHIFT) | (
int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (
int)digits[0]));
47590 #if CYTHON_COMPILING_IN_CPYTHON 47591 if (unlikely(Py_SIZE(x) < 0)) {
47592 goto raise_neg_overflow;
47596 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
47597 if (unlikely(result < 0))
47599 if (unlikely(result == 1))
47600 goto raise_neg_overflow;
47603 if (
sizeof(
int) <=
sizeof(
unsigned long)) {
47604 __PYX_VERIFY_RETURN_INT_EXC(
int,
unsigned long, PyLong_AsUnsignedLong(x))
47605 #ifdef HAVE_LONG_LONG 47606 }
else if (
sizeof(
int) <=
sizeof(
unsigned PY_LONG_LONG)) {
47607 __PYX_VERIFY_RETURN_INT_EXC(
int,
unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
47611 #if CYTHON_USE_PYLONG_INTERNALS 47612 const digit* digits = ((PyLongObject*)x)->ob_digit;
47613 switch (Py_SIZE(x)) {
47614 case 0:
return (
int) 0;
47615 case -1: __PYX_VERIFY_RETURN_INT(
int, sdigit, (sdigit) (-(sdigit)digits[0]))
47616 case 1: __PYX_VERIFY_RETURN_INT(
int, digit, +digits[0])
47618 if (8 *
sizeof(
int) - 1 > 1 * PyLong_SHIFT) {
47619 if (8 *
sizeof(
unsigned long) > 2 * PyLong_SHIFT) {
47620 __PYX_VERIFY_RETURN_INT(
int,
long, -(
long) (((((
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47621 }
else if (8 *
sizeof(
int) - 1 > 2 * PyLong_SHIFT) {
47622 return (
int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (
int)digits[0])));
47627 if (8 *
sizeof(
int) > 1 * PyLong_SHIFT) {
47628 if (8 *
sizeof(
unsigned long) > 2 * PyLong_SHIFT) {
47629 __PYX_VERIFY_RETURN_INT(
int,
unsigned long, (((((
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47630 }
else if (8 *
sizeof(
int) - 1 > 2 * PyLong_SHIFT) {
47631 return (
int) ((((((int)digits[1]) << PyLong_SHIFT) | (
int)digits[0])));
47636 if (8 *
sizeof(
int) - 1 > 2 * PyLong_SHIFT) {
47637 if (8 *
sizeof(
unsigned long) > 3 * PyLong_SHIFT) {
47638 __PYX_VERIFY_RETURN_INT(
int,
long, -(
long) (((((((
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47639 }
else if (8 *
sizeof(
int) - 1 > 3 * PyLong_SHIFT) {
47640 return (
int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (
int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
47645 if (8 *
sizeof(
int) > 2 * PyLong_SHIFT) {
47646 if (8 *
sizeof(
unsigned long) > 3 * PyLong_SHIFT) {
47647 __PYX_VERIFY_RETURN_INT(
int,
unsigned long, (((((((
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47648 }
else if (8 *
sizeof(
int) - 1 > 3 * PyLong_SHIFT) {
47649 return (
int) ((((((((int)digits[2]) << PyLong_SHIFT) | (
int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
47654 if (8 *
sizeof(
int) - 1 > 3 * PyLong_SHIFT) {
47655 if (8 *
sizeof(
unsigned long) > 4 * PyLong_SHIFT) {
47656 __PYX_VERIFY_RETURN_INT(
int,
long, -(
long) (((((((((
unsigned long)digits[3]) << PyLong_SHIFT) | (
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47657 }
else if (8 *
sizeof(
int) - 1 > 4 * PyLong_SHIFT) {
47658 return (
int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (
int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (
int)digits[0])));
47663 if (8 *
sizeof(
int) > 3 * PyLong_SHIFT) {
47664 if (8 *
sizeof(
unsigned long) > 4 * PyLong_SHIFT) {
47665 __PYX_VERIFY_RETURN_INT(
int,
unsigned long, (((((((((
unsigned long)digits[3]) << PyLong_SHIFT) | (
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47666 }
else if (8 *
sizeof(
int) - 1 > 4 * PyLong_SHIFT) {
47667 return (
int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (
int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (
int)digits[0])));
47673 if (
sizeof(
int) <=
sizeof(long)) {
47674 __PYX_VERIFY_RETURN_INT_EXC(
int,
long, PyLong_AsLong(x))
47675 #ifdef HAVE_LONG_LONG 47676 }
else if (
sizeof(
int) <=
sizeof(PY_LONG_LONG)) {
47677 __PYX_VERIFY_RETURN_INT_EXC(
int, PY_LONG_LONG, PyLong_AsLongLong(x))
47682 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) 47683 PyErr_SetString(PyExc_RuntimeError,
47684 "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
47687 PyObject *
v = __Pyx_PyNumber_IntOrLong(x);
47688 #if PY_MAJOR_VERSION < 3 47689 if (likely(v) && !PyLong_Check(v)) {
47691 v = PyNumber_Long(tmp);
47696 int one = 1;
int is_little = (int)*(
unsigned char *)&one;
47697 unsigned char *bytes = (
unsigned char *)&val;
47698 int ret = _PyLong_AsByteArray((PyLongObject *)v,
47699 bytes,
sizeof(val),
47700 is_little, !is_unsigned);
47710 PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
47711 if (!tmp)
return (
int) -1;
47712 val = __Pyx_PyInt_As_int(tmp);
47717 PyErr_SetString(PyExc_OverflowError,
47718 "value too large to convert to int");
47720 raise_neg_overflow:
47721 PyErr_SetString(PyExc_OverflowError,
47722 "can't convert negative value to int");
47727 static struct __pyx_typeinfo_string __Pyx_TypeInfoToFormat(__Pyx_TypeInfo *type) {
47728 struct __pyx_typeinfo_string result = { {0} };
47729 char *buf = (
char *) result.string;
47730 size_t size = type->size;
47731 switch (type->typegroup) {
47738 *buf = (type->is_unsigned) ?
'B' :
'b';
47739 else if (size == 2)
47740 *buf = (type->is_unsigned) ?
'H' :
'h';
47741 else if (size == 4)
47742 *buf = (type->is_unsigned) ?
'I' :
'i';
47743 else if (size == 8)
47744 *buf = (type->is_unsigned) ?
'Q' :
'q';
47751 __Pyx_TypeInfo complex_type = *type;
47752 complex_type.typegroup =
'R';
47753 complex_type.size /= 2;
47755 *buf = __Pyx_TypeInfoToFormat(&complex_type).string[0];
47761 else if (size == 8)
47771 static CYTHON_INLINE
long __Pyx_PyInt_As_long(PyObject *x) {
47772 const long neg_one = (long) ((
long) 0 - (long) 1), const_zero = (long) 0;
47773 const int is_unsigned = neg_one > const_zero;
47774 #if PY_MAJOR_VERSION < 3 47775 if (likely(PyInt_Check(x))) {
47776 if (
sizeof(
long) <
sizeof(long)) {
47777 __PYX_VERIFY_RETURN_INT(
long,
long, PyInt_AS_LONG(x))
47779 long val = PyInt_AS_LONG(x);
47780 if (is_unsigned && unlikely(val < 0)) {
47781 goto raise_neg_overflow;
47787 if (likely(PyLong_Check(x))) {
47789 #if CYTHON_USE_PYLONG_INTERNALS 47790 const digit* digits = ((PyLongObject*)x)->ob_digit;
47791 switch (Py_SIZE(x)) {
47792 case 0:
return (
long) 0;
47793 case 1: __PYX_VERIFY_RETURN_INT(
long, digit, digits[0])
47795 if (8 *
sizeof(
long) > 1 * PyLong_SHIFT) {
47796 if (8 *
sizeof(
unsigned long) > 2 * PyLong_SHIFT) {
47797 __PYX_VERIFY_RETURN_INT(
long,
unsigned long, (((((
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47798 }
else if (8 *
sizeof(
long) >= 2 * PyLong_SHIFT) {
47799 return (
long) (((((long)digits[1]) << PyLong_SHIFT) | (
long)digits[0]));
47804 if (8 *
sizeof(
long) > 2 * PyLong_SHIFT) {
47805 if (8 *
sizeof(
unsigned long) > 3 * PyLong_SHIFT) {
47806 __PYX_VERIFY_RETURN_INT(
long,
unsigned long, (((((((
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47807 }
else if (8 *
sizeof(
long) >= 3 * PyLong_SHIFT) {
47808 return (
long) (((((((long)digits[2]) << PyLong_SHIFT) | (
long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
47813 if (8 *
sizeof(
long) > 3 * PyLong_SHIFT) {
47814 if (8 *
sizeof(
unsigned long) > 4 * PyLong_SHIFT) {
47815 __PYX_VERIFY_RETURN_INT(
long,
unsigned long, (((((((((
unsigned long)digits[3]) << PyLong_SHIFT) | (
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47816 }
else if (8 *
sizeof(
long) >= 4 * PyLong_SHIFT) {
47817 return (
long) (((((((((long)digits[3]) << PyLong_SHIFT) | (
long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (
long)digits[0]));
47823 #if CYTHON_COMPILING_IN_CPYTHON 47824 if (unlikely(Py_SIZE(x) < 0)) {
47825 goto raise_neg_overflow;
47829 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
47830 if (unlikely(result < 0))
47832 if (unlikely(result == 1))
47833 goto raise_neg_overflow;
47836 if (
sizeof(
long) <=
sizeof(
unsigned long)) {
47837 __PYX_VERIFY_RETURN_INT_EXC(
long,
unsigned long, PyLong_AsUnsignedLong(x))
47838 #ifdef HAVE_LONG_LONG 47839 }
else if (
sizeof(
long) <=
sizeof(
unsigned PY_LONG_LONG)) {
47840 __PYX_VERIFY_RETURN_INT_EXC(
long,
unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
47844 #if CYTHON_USE_PYLONG_INTERNALS 47845 const digit* digits = ((PyLongObject*)x)->ob_digit;
47846 switch (Py_SIZE(x)) {
47847 case 0:
return (
long) 0;
47848 case -1: __PYX_VERIFY_RETURN_INT(
long, sdigit, (sdigit) (-(sdigit)digits[0]))
47849 case 1: __PYX_VERIFY_RETURN_INT(
long, digit, +digits[0])
47851 if (8 *
sizeof(
long) - 1 > 1 * PyLong_SHIFT) {
47852 if (8 *
sizeof(
unsigned long) > 2 * PyLong_SHIFT) {
47853 __PYX_VERIFY_RETURN_INT(
long,
long, -(
long) (((((
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47854 }
else if (8 *
sizeof(
long) - 1 > 2 * PyLong_SHIFT) {
47855 return (
long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (
long)digits[0])));
47860 if (8 *
sizeof(
long) > 1 * PyLong_SHIFT) {
47861 if (8 *
sizeof(
unsigned long) > 2 * PyLong_SHIFT) {
47862 __PYX_VERIFY_RETURN_INT(
long,
unsigned long, (((((
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47863 }
else if (8 *
sizeof(
long) - 1 > 2 * PyLong_SHIFT) {
47864 return (
long) ((((((long)digits[1]) << PyLong_SHIFT) | (
long)digits[0])));
47869 if (8 *
sizeof(
long) - 1 > 2 * PyLong_SHIFT) {
47870 if (8 *
sizeof(
unsigned long) > 3 * PyLong_SHIFT) {
47871 __PYX_VERIFY_RETURN_INT(
long,
long, -(
long) (((((((
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47872 }
else if (8 *
sizeof(
long) - 1 > 3 * PyLong_SHIFT) {
47873 return (
long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (
long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
47878 if (8 *
sizeof(
long) > 2 * PyLong_SHIFT) {
47879 if (8 *
sizeof(
unsigned long) > 3 * PyLong_SHIFT) {
47880 __PYX_VERIFY_RETURN_INT(
long,
unsigned long, (((((((
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47881 }
else if (8 *
sizeof(
long) - 1 > 3 * PyLong_SHIFT) {
47882 return (
long) ((((((((long)digits[2]) << PyLong_SHIFT) | (
long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
47887 if (8 *
sizeof(
long) - 1 > 3 * PyLong_SHIFT) {
47888 if (8 *
sizeof(
unsigned long) > 4 * PyLong_SHIFT) {
47889 __PYX_VERIFY_RETURN_INT(
long,
long, -(
long) (((((((((
unsigned long)digits[3]) << PyLong_SHIFT) | (
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47890 }
else if (8 *
sizeof(
long) - 1 > 4 * PyLong_SHIFT) {
47891 return (
long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (
long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (
long)digits[0])));
47896 if (8 *
sizeof(
long) > 3 * PyLong_SHIFT) {
47897 if (8 *
sizeof(
unsigned long) > 4 * PyLong_SHIFT) {
47898 __PYX_VERIFY_RETURN_INT(
long,
unsigned long, (((((((((
unsigned long)digits[3]) << PyLong_SHIFT) | (
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47899 }
else if (8 *
sizeof(
long) - 1 > 4 * PyLong_SHIFT) {
47900 return (
long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (
long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (
long)digits[0])));
47906 if (
sizeof(
long) <=
sizeof(long)) {
47907 __PYX_VERIFY_RETURN_INT_EXC(
long,
long, PyLong_AsLong(x))
47908 #ifdef HAVE_LONG_LONG 47909 }
else if (
sizeof(
long) <=
sizeof(PY_LONG_LONG)) {
47910 __PYX_VERIFY_RETURN_INT_EXC(
long, PY_LONG_LONG, PyLong_AsLongLong(x))
47915 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) 47916 PyErr_SetString(PyExc_RuntimeError,
47917 "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
47920 PyObject *
v = __Pyx_PyNumber_IntOrLong(x);
47921 #if PY_MAJOR_VERSION < 3 47922 if (likely(v) && !PyLong_Check(v)) {
47924 v = PyNumber_Long(tmp);
47929 int one = 1;
int is_little = (int)*(
unsigned char *)&one;
47930 unsigned char *bytes = (
unsigned char *)&val;
47931 int ret = _PyLong_AsByteArray((PyLongObject *)v,
47932 bytes,
sizeof(val),
47933 is_little, !is_unsigned);
47943 PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
47944 if (!tmp)
return (
long) -1;
47945 val = __Pyx_PyInt_As_long(tmp);
47950 PyErr_SetString(PyExc_OverflowError,
47951 "value too large to convert to long");
47953 raise_neg_overflow:
47954 PyErr_SetString(PyExc_OverflowError,
47955 "can't convert negative value to long");
47960 static CYTHON_INLINE
char __Pyx_PyInt_As_char(PyObject *x) {
47961 const char neg_one = (char) ((
char) 0 - (char) 1), const_zero = (char) 0;
47962 const int is_unsigned = neg_one > const_zero;
47963 #if PY_MAJOR_VERSION < 3 47964 if (likely(PyInt_Check(x))) {
47965 if (
sizeof(
char) <
sizeof(long)) {
47966 __PYX_VERIFY_RETURN_INT(
char,
long, PyInt_AS_LONG(x))
47968 long val = PyInt_AS_LONG(x);
47969 if (is_unsigned && unlikely(val < 0)) {
47970 goto raise_neg_overflow;
47976 if (likely(PyLong_Check(x))) {
47978 #if CYTHON_USE_PYLONG_INTERNALS 47979 const digit* digits = ((PyLongObject*)x)->ob_digit;
47980 switch (Py_SIZE(x)) {
47981 case 0:
return (
char) 0;
47982 case 1: __PYX_VERIFY_RETURN_INT(
char, digit, digits[0])
47984 if (8 *
sizeof(
char) > 1 * PyLong_SHIFT) {
47985 if (8 *
sizeof(
unsigned long) > 2 * PyLong_SHIFT) {
47986 __PYX_VERIFY_RETURN_INT(
char,
unsigned long, (((((
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47987 }
else if (8 *
sizeof(
char) >= 2 * PyLong_SHIFT) {
47988 return (
char) (((((char)digits[1]) << PyLong_SHIFT) | (
char)digits[0]));
47993 if (8 *
sizeof(
char) > 2 * PyLong_SHIFT) {
47994 if (8 *
sizeof(
unsigned long) > 3 * PyLong_SHIFT) {
47995 __PYX_VERIFY_RETURN_INT(
char,
unsigned long, (((((((
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
47996 }
else if (8 *
sizeof(
char) >= 3 * PyLong_SHIFT) {
47997 return (
char) (((((((char)digits[2]) << PyLong_SHIFT) | (
char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
48002 if (8 *
sizeof(
char) > 3 * PyLong_SHIFT) {
48003 if (8 *
sizeof(
unsigned long) > 4 * PyLong_SHIFT) {
48004 __PYX_VERIFY_RETURN_INT(
char,
unsigned long, (((((((((
unsigned long)digits[3]) << PyLong_SHIFT) | (
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
48005 }
else if (8 *
sizeof(
char) >= 4 * PyLong_SHIFT) {
48006 return (
char) (((((((((char)digits[3]) << PyLong_SHIFT) | (
char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (
char)digits[0]));
48012 #if CYTHON_COMPILING_IN_CPYTHON 48013 if (unlikely(Py_SIZE(x) < 0)) {
48014 goto raise_neg_overflow;
48018 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
48019 if (unlikely(result < 0))
48021 if (unlikely(result == 1))
48022 goto raise_neg_overflow;
48025 if (
sizeof(
char) <=
sizeof(
unsigned long)) {
48026 __PYX_VERIFY_RETURN_INT_EXC(
char,
unsigned long, PyLong_AsUnsignedLong(x))
48027 #ifdef HAVE_LONG_LONG 48028 }
else if (
sizeof(
char) <=
sizeof(
unsigned PY_LONG_LONG)) {
48029 __PYX_VERIFY_RETURN_INT_EXC(
char,
unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
48033 #if CYTHON_USE_PYLONG_INTERNALS 48034 const digit* digits = ((PyLongObject*)x)->ob_digit;
48035 switch (Py_SIZE(x)) {
48036 case 0:
return (
char) 0;
48037 case -1: __PYX_VERIFY_RETURN_INT(
char, sdigit, (sdigit) (-(sdigit)digits[0]))
48038 case 1: __PYX_VERIFY_RETURN_INT(
char, digit, +digits[0])
48040 if (8 *
sizeof(
char) - 1 > 1 * PyLong_SHIFT) {
48041 if (8 *
sizeof(
unsigned long) > 2 * PyLong_SHIFT) {
48042 __PYX_VERIFY_RETURN_INT(
char,
long, -(
long) (((((
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
48043 }
else if (8 *
sizeof(
char) - 1 > 2 * PyLong_SHIFT) {
48044 return (
char) (((char)-1)*(((((char)digits[1]) << PyLong_SHIFT) | (
char)digits[0])));
48049 if (8 *
sizeof(
char) > 1 * PyLong_SHIFT) {
48050 if (8 *
sizeof(
unsigned long) > 2 * PyLong_SHIFT) {
48051 __PYX_VERIFY_RETURN_INT(
char,
unsigned long, (((((
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
48052 }
else if (8 *
sizeof(
char) - 1 > 2 * PyLong_SHIFT) {
48053 return (
char) ((((((char)digits[1]) << PyLong_SHIFT) | (
char)digits[0])));
48058 if (8 *
sizeof(
char) - 1 > 2 * PyLong_SHIFT) {
48059 if (8 *
sizeof(
unsigned long) > 3 * PyLong_SHIFT) {
48060 __PYX_VERIFY_RETURN_INT(
char,
long, -(
long) (((((((
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
48061 }
else if (8 *
sizeof(
char) - 1 > 3 * PyLong_SHIFT) {
48062 return (
char) (((char)-1)*(((((((char)digits[2]) << PyLong_SHIFT) | (
char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
48067 if (8 *
sizeof(
char) > 2 * PyLong_SHIFT) {
48068 if (8 *
sizeof(
unsigned long) > 3 * PyLong_SHIFT) {
48069 __PYX_VERIFY_RETURN_INT(
char,
unsigned long, (((((((
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
48070 }
else if (8 *
sizeof(
char) - 1 > 3 * PyLong_SHIFT) {
48071 return (
char) ((((((((char)digits[2]) << PyLong_SHIFT) | (
char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
48076 if (8 *
sizeof(
char) - 1 > 3 * PyLong_SHIFT) {
48077 if (8 *
sizeof(
unsigned long) > 4 * PyLong_SHIFT) {
48078 __PYX_VERIFY_RETURN_INT(
char,
long, -(
long) (((((((((
unsigned long)digits[3]) << PyLong_SHIFT) | (
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
48079 }
else if (8 *
sizeof(
char) - 1 > 4 * PyLong_SHIFT) {
48080 return (
char) (((char)-1)*(((((((((char)digits[3]) << PyLong_SHIFT) | (
char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (
char)digits[0])));
48085 if (8 *
sizeof(
char) > 3 * PyLong_SHIFT) {
48086 if (8 *
sizeof(
unsigned long) > 4 * PyLong_SHIFT) {
48087 __PYX_VERIFY_RETURN_INT(
char,
unsigned long, (((((((((
unsigned long)digits[3]) << PyLong_SHIFT) | (
unsigned long)digits[2]) << PyLong_SHIFT) | (
unsigned long)digits[1]) << PyLong_SHIFT) | (
unsigned long)digits[0])))
48088 }
else if (8 *
sizeof(
char) - 1 > 4 * PyLong_SHIFT) {
48089 return (
char) ((((((((((char)digits[3]) << PyLong_SHIFT) | (
char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (
char)digits[0])));
48095 if (
sizeof(
char) <=
sizeof(long)) {
48096 __PYX_VERIFY_RETURN_INT_EXC(
char,
long, PyLong_AsLong(x))
48097 #ifdef HAVE_LONG_LONG 48098 }
else if (
sizeof(
char) <=
sizeof(PY_LONG_LONG)) {
48099 __PYX_VERIFY_RETURN_INT_EXC(
char, PY_LONG_LONG, PyLong_AsLongLong(x))
48104 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) 48105 PyErr_SetString(PyExc_RuntimeError,
48106 "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
48109 PyObject *
v = __Pyx_PyNumber_IntOrLong(x);
48110 #if PY_MAJOR_VERSION < 3 48111 if (likely(v) && !PyLong_Check(v)) {
48113 v = PyNumber_Long(tmp);
48118 int one = 1;
int is_little = (int)*(
unsigned char *)&one;
48119 unsigned char *bytes = (
unsigned char *)&val;
48120 int ret = _PyLong_AsByteArray((PyLongObject *)v,
48121 bytes,
sizeof(val),
48122 is_little, !is_unsigned);
48132 PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
48133 if (!tmp)
return (
char) -1;
48134 val = __Pyx_PyInt_As_char(tmp);
48139 PyErr_SetString(PyExc_OverflowError,
48140 "value too large to convert to char");
48142 raise_neg_overflow:
48143 PyErr_SetString(PyExc_OverflowError,
48144 "can't convert negative value to char");
48149 static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
48150 PyObject* fake_module;
48151 PyTypeObject* cached_type = NULL;
48152 fake_module = PyImport_AddModule((
char*)
"_cython_" CYTHON_ABI);
48153 if (!fake_module)
return NULL;
48154 Py_INCREF(fake_module);
48155 cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name);
48157 if (!PyType_Check((PyObject*)cached_type)) {
48158 PyErr_Format(PyExc_TypeError,
48159 "Shared Cython type %.200s is not a type object",
48163 if (cached_type->tp_basicsize != type->tp_basicsize) {
48164 PyErr_Format(PyExc_TypeError,
48165 "Shared Cython type %.200s has the wrong size, try recompiling",
48170 if (!PyErr_ExceptionMatches(PyExc_AttributeError))
goto bad;
48172 if (PyType_Ready(type) < 0)
goto bad;
48173 if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0)
48176 cached_type = type;
48179 Py_DECREF(fake_module);
48180 return cached_type;
48182 Py_XDECREF(cached_type);
48183 cached_type = NULL;
48188 static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {
48190 #if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP 48191 PyTypeObject *tp = Py_TYPE(obj);
48193 descrgetfunc
f = NULL;
48194 PyObject **dictptr, *dict;
48195 int meth_found = 0;
48196 assert (*method == NULL);
48197 if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {
48198 attr = __Pyx_PyObject_GetAttrStr(obj, name);
48201 if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {
48204 descr = _PyType_Lookup(tp, name);
48205 if (likely(descr != NULL)) {
48207 #if PY_MAJOR_VERSION >= 3 48208 #ifdef __Pyx_CyFunction_USED 48209 if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
48211 if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type)))
48214 #ifdef __Pyx_CyFunction_USED 48215 if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr)))
48217 if (likely(PyFunction_Check(descr)))
48223 f = Py_TYPE(descr)->tp_descr_get;
48224 if (f != NULL && PyDescr_IsData(descr)) {
48225 attr =
f(descr, obj, (PyObject *)Py_TYPE(obj));
48231 dictptr = _PyObject_GetDictPtr(obj);
48232 if (dictptr != NULL && (dict = *dictptr) != NULL) {
48234 attr = __Pyx_PyDict_GetItemStr(dict, name);
48235 if (attr != NULL) {
48248 attr =
f(descr, obj, (PyObject *)Py_TYPE(obj));
48252 if (descr != NULL) {
48256 PyErr_Format(PyExc_AttributeError,
48257 #
if PY_MAJOR_VERSION >= 3
48258 "'%.50s' object has no attribute '%U'",
48259 tp->tp_name, name);
48261 "'%.50s' object has no attribute '%.400s'",
48262 tp->tp_name, PyString_AS_STRING(name));
48266 attr = __Pyx_PyObject_GetAttrStr(obj, name);
48270 #if CYTHON_UNPACK_METHODS 48271 if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {
48272 PyObject *
function = PyMethod_GET_FUNCTION(attr);
48273 Py_INCREF(
function);
48275 *method =
function;
48284 static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) {
48285 PyObject *result = __Pyx_PyObject_CallOneArg(method, arg);
48289 static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) {
48290 PyObject *method = NULL, *result;
48291 int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
48292 if (likely(is_method)) {
48293 result = __Pyx_PyObject_Call2Args(method, obj, arg);
48297 if (unlikely(!method))
return NULL;
48298 return __Pyx__PyObject_CallMethod1(method, arg);
48302 #include <structmember.h> 48303 #include <frameobject.h> 48304 #define __Pyx_Coroutine_Undelegate(gen) Py_CLEAR((gen)->yieldfrom) 48305 static int __Pyx_PyGen__FetchStopIterationValue(CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject **pvalue) {
48306 PyObject *et, *ev, *tb;
48307 PyObject *value = NULL;
48308 __Pyx_ErrFetch(&et, &ev, &tb);
48312 Py_INCREF(Py_None);
48316 if (likely(et == PyExc_StopIteration)) {
48318 Py_INCREF(Py_None);
48321 #if PY_VERSION_HEX >= 0x030300A0 48322 else if (Py_TYPE(ev) == (PyTypeObject*)PyExc_StopIteration) {
48323 value = ((PyStopIterationObject *)ev)->value;
48328 else if (unlikely(PyTuple_Check(ev))) {
48329 if (PyTuple_GET_SIZE(ev) >= 1) {
48330 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS 48331 value = PyTuple_GET_ITEM(ev, 0);
48334 value = PySequence_ITEM(ev, 0);
48337 Py_INCREF(Py_None);
48342 else if (!__Pyx_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) {
48345 if (likely(value)) {
48351 }
else if (!__Pyx_PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) {
48352 __Pyx_ErrRestore(et, ev, tb);
48355 PyErr_NormalizeException(&et, &ev, &tb);
48356 if (unlikely(!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration))) {
48357 __Pyx_ErrRestore(et, ev, tb);
48362 #if PY_VERSION_HEX >= 0x030300A0 48363 value = ((PyStopIterationObject *)ev)->value;
48368 PyObject* args = __Pyx_PyObject_GetAttrStr(ev, __pyx_n_s_args_2);
48370 if (likely(args)) {
48371 value = PySequence_GetItem(args, 0);
48374 if (unlikely(!value)) {
48375 __Pyx_ErrRestore(NULL, NULL, NULL);
48376 Py_INCREF(Py_None);
48384 static CYTHON_INLINE
48385 void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *exc_state) {
48386 PyObject *t, *
v, *tb;
48387 t = exc_state->exc_type;
48388 v = exc_state->exc_value;
48389 tb = exc_state->exc_traceback;
48390 exc_state->exc_type = NULL;
48391 exc_state->exc_value = NULL;
48392 exc_state->exc_traceback = NULL;
48397 #define __Pyx_Coroutine_AlreadyRunningError(gen) (__Pyx__Coroutine_AlreadyRunningError(gen), (PyObject*)NULL) 48398 static void __Pyx__Coroutine_AlreadyRunningError(CYTHON_UNUSED __pyx_CoroutineObject *gen) {
48401 #ifdef __Pyx_Coroutine_USED 48402 }
else if (__Pyx_Coroutine_Check((PyObject*)gen)) {
48403 msg =
"coroutine already executing";
48405 #ifdef __Pyx_AsyncGen_USED 48406 }
else if (__Pyx_AsyncGen_CheckExact((PyObject*)gen)) {
48407 msg =
"async generator already executing";
48410 msg =
"generator already executing";
48412 PyErr_SetString(PyExc_ValueError, msg);
48414 #define __Pyx_Coroutine_NotStartedError(gen) (__Pyx__Coroutine_NotStartedError(gen), (PyObject*)NULL) 48415 static void __Pyx__Coroutine_NotStartedError(CYTHON_UNUSED PyObject *gen) {
48418 #ifdef __Pyx_Coroutine_USED 48419 }
else if (__Pyx_Coroutine_Check(gen)) {
48420 msg =
"can't send non-None value to a just-started coroutine";
48422 #ifdef __Pyx_AsyncGen_USED 48423 }
else if (__Pyx_AsyncGen_CheckExact(gen)) {
48424 msg =
"can't send non-None value to a just-started async generator";
48427 msg =
"can't send non-None value to a just-started generator";
48429 PyErr_SetString(PyExc_TypeError, msg);
48431 #define __Pyx_Coroutine_AlreadyTerminatedError(gen, value, closing) (__Pyx__Coroutine_AlreadyTerminatedError(gen, value, closing), (PyObject*)NULL) 48432 static void __Pyx__Coroutine_AlreadyTerminatedError(CYTHON_UNUSED PyObject *gen, PyObject *value, CYTHON_UNUSED
int closing) {
48433 #ifdef __Pyx_Coroutine_USED 48434 if (!closing && __Pyx_Coroutine_Check(gen)) {
48435 PyErr_SetString(PyExc_RuntimeError,
"cannot reuse already awaited coroutine");
48439 #ifdef __Pyx_AsyncGen_USED 48440 if (__Pyx_AsyncGen_CheckExact(gen))
48441 PyErr_SetNone(__Pyx_PyExc_StopAsyncIteration);
48444 PyErr_SetNone(PyExc_StopIteration);
48448 PyObject *__Pyx_Coroutine_SendEx(__pyx_CoroutineObject *
self, PyObject *value,
int closing) {
48449 __Pyx_PyThreadState_declare
48450 PyThreadState *tstate;
48451 __Pyx_ExcInfoStruct *exc_state;
48453 assert(!self->is_running);
48454 if (unlikely(self->resume_label == 0)) {
48455 if (unlikely(value && value != Py_None)) {
48456 return __Pyx_Coroutine_NotStartedError((PyObject*)
self);
48459 if (unlikely(self->resume_label == -1)) {
48460 return __Pyx_Coroutine_AlreadyTerminatedError((PyObject*)
self, value, closing);
48462 #if CYTHON_FAST_THREAD_STATE 48463 __Pyx_PyThreadState_assign
48464 tstate = __pyx_tstate;
48466 tstate = __Pyx_PyThreadState_Current;
48468 exc_state = &
self->gi_exc_state;
48469 if (exc_state->exc_type) {
48470 #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON 48472 if (exc_state->exc_traceback) {
48473 PyTracebackObject *tb = (PyTracebackObject *) exc_state->exc_traceback;
48474 PyFrameObject *
f = tb->tb_frame;
48475 Py_XINCREF(tstate->frame);
48476 assert(
f->f_back == NULL);
48477 f->f_back = tstate->frame;
48481 #if CYTHON_USE_EXC_INFO_STACK 48482 exc_state->previous_item = tstate->exc_info;
48483 tstate->exc_info = exc_state;
48485 if (exc_state->exc_type) {
48486 __Pyx_ExceptionSwap(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
48488 __Pyx_Coroutine_ExceptionClear(exc_state);
48489 __Pyx_ExceptionSave(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
48492 self->is_running = 1;
48493 retval =
self->body((PyObject *)
self, tstate, value);
48494 self->is_running = 0;
48495 #if CYTHON_USE_EXC_INFO_STACK 48496 exc_state = &
self->gi_exc_state;
48497 tstate->exc_info = exc_state->previous_item;
48498 exc_state->previous_item = NULL;
48499 __Pyx_Coroutine_ResetFrameBackpointer(exc_state);
48503 static CYTHON_INLINE
void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state) {
48504 PyObject *exc_tb = exc_state->exc_traceback;
48505 if (likely(exc_tb)) {
48506 #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON 48508 PyTracebackObject *tb = (PyTracebackObject *) exc_tb;
48509 PyFrameObject *
f = tb->tb_frame;
48510 Py_CLEAR(f->f_back);
48514 static CYTHON_INLINE
48515 PyObject *__Pyx_Coroutine_MethodReturn(CYTHON_UNUSED PyObject* gen, PyObject *retval) {
48516 if (unlikely(!retval)) {
48517 __Pyx_PyThreadState_declare
48518 __Pyx_PyThreadState_assign
48519 if (!__Pyx_PyErr_Occurred()) {
48520 PyObject *exc = PyExc_StopIteration;
48521 #ifdef __Pyx_AsyncGen_USED 48522 if (__Pyx_AsyncGen_CheckExact(gen))
48523 exc = __Pyx_PyExc_StopAsyncIteration;
48525 __Pyx_PyErr_SetNone(exc);
48530 static CYTHON_INLINE
48531 PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) {
48533 PyObject *val = NULL;
48534 __Pyx_Coroutine_Undelegate(gen);
48535 __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, &val);
48536 ret = __Pyx_Coroutine_SendEx(gen, val, 0);
48540 static PyObject *__Pyx_Coroutine_Send(PyObject *
self, PyObject *value) {
48542 __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*)
self;
48543 PyObject *yf = gen->yieldfrom;
48544 if (unlikely(gen->is_running))
48545 return __Pyx_Coroutine_AlreadyRunningError(gen);
48548 gen->is_running = 1;
48549 #ifdef __Pyx_Generator_USED 48550 if (__Pyx_Generator_CheckExact(yf)) {
48551 ret = __Pyx_Coroutine_Send(yf, value);
48554 #ifdef __Pyx_Coroutine_USED 48555 if (__Pyx_Coroutine_Check(yf)) {
48556 ret = __Pyx_Coroutine_Send(yf, value);
48559 #ifdef __Pyx_AsyncGen_USED 48560 if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
48561 ret = __Pyx_async_gen_asend_send(yf, value);
48564 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) 48565 if (PyGen_CheckExact(yf)) {
48566 ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
48569 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03050000 && defined(PyCoro_CheckExact) && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) 48570 if (PyCoro_CheckExact(yf)) {
48571 ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
48575 if (value == Py_None)
48576 ret = Py_TYPE(yf)->tp_iternext(yf);
48578 ret = __Pyx_PyObject_CallMethod1(yf, __pyx_n_s_send, value);
48580 gen->is_running = 0;
48584 retval = __Pyx_Coroutine_FinishDelegation(gen);
48586 retval = __Pyx_Coroutine_SendEx(gen, value, 0);
48588 return __Pyx_Coroutine_MethodReturn(
self, retval);
48590 static int __Pyx_Coroutine_CloseIter(__pyx_CoroutineObject *gen, PyObject *yf) {
48591 PyObject *retval = NULL;
48593 #ifdef __Pyx_Generator_USED 48594 if (__Pyx_Generator_CheckExact(yf)) {
48595 retval = __Pyx_Coroutine_Close(yf);
48600 #ifdef __Pyx_Coroutine_USED 48601 if (__Pyx_Coroutine_Check(yf)) {
48602 retval = __Pyx_Coroutine_Close(yf);
48606 if (__Pyx_CoroutineAwait_CheckExact(yf)) {
48607 retval = __Pyx_CoroutineAwait_Close((__pyx_CoroutineAwaitObject*)yf, NULL);
48612 #ifdef __Pyx_AsyncGen_USED 48613 if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
48614 retval = __Pyx_async_gen_asend_close(yf, NULL);
48616 if (__pyx_PyAsyncGenAThrow_CheckExact(yf)) {
48617 retval = __Pyx_async_gen_athrow_close(yf, NULL);
48622 gen->is_running = 1;
48623 meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_close);
48624 if (unlikely(!meth)) {
48625 if (!PyErr_ExceptionMatches(PyExc_AttributeError)) {
48626 PyErr_WriteUnraisable(yf);
48630 retval = PyObject_CallFunction(meth, NULL);
48635 gen->is_running = 0;
48637 Py_XDECREF(retval);
48640 static PyObject *__Pyx_Generator_Next(PyObject *
self) {
48641 __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*)
self;
48642 PyObject *yf = gen->yieldfrom;
48643 if (unlikely(gen->is_running))
48644 return __Pyx_Coroutine_AlreadyRunningError(gen);
48647 gen->is_running = 1;
48648 #ifdef __Pyx_Generator_USED 48649 if (__Pyx_Generator_CheckExact(yf)) {
48650 ret = __Pyx_Generator_Next(yf);
48653 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) 48654 if (PyGen_CheckExact(yf)) {
48655 ret = _PyGen_Send((PyGenObject*)yf, NULL);
48658 #ifdef __Pyx_Coroutine_USED 48659 if (__Pyx_Coroutine_Check(yf)) {
48660 ret = __Pyx_Coroutine_Send(yf, Py_None);
48663 ret = Py_TYPE(yf)->tp_iternext(yf);
48664 gen->is_running = 0;
48668 return __Pyx_Coroutine_FinishDelegation(gen);
48670 return __Pyx_Coroutine_SendEx(gen, Py_None, 0);
48672 static PyObject *__Pyx_Coroutine_Close_Method(PyObject *
self, CYTHON_UNUSED PyObject *arg) {
48673 return __Pyx_Coroutine_Close(
self);
48675 static PyObject *__Pyx_Coroutine_Close(PyObject *
self) {
48676 __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *)
self;
48677 PyObject *retval, *raised_exception;
48678 PyObject *yf = gen->yieldfrom;
48680 if (unlikely(gen->is_running))
48681 return __Pyx_Coroutine_AlreadyRunningError(gen);
48684 err = __Pyx_Coroutine_CloseIter(gen, yf);
48685 __Pyx_Coroutine_Undelegate(gen);
48689 PyErr_SetNone(PyExc_GeneratorExit);
48690 retval = __Pyx_Coroutine_SendEx(gen, NULL, 1);
48691 if (unlikely(retval)) {
48695 #ifdef __Pyx_Coroutine_USED 48696 }
else if (__Pyx_Coroutine_Check(
self)) {
48697 msg =
"coroutine ignored GeneratorExit";
48699 #ifdef __Pyx_AsyncGen_USED 48700 }
else if (__Pyx_AsyncGen_CheckExact(
self)) {
48701 #if PY_VERSION_HEX < 0x03060000 48702 msg =
"async generator ignored GeneratorExit - might require Python 3.6+ finalisation (PEP 525)";
48704 msg =
"async generator ignored GeneratorExit";
48708 msg =
"generator ignored GeneratorExit";
48710 PyErr_SetString(PyExc_RuntimeError, msg);
48713 raised_exception = PyErr_Occurred();
48714 if (likely(!raised_exception || __Pyx_PyErr_GivenExceptionMatches2(raised_exception, PyExc_GeneratorExit, PyExc_StopIteration))) {
48715 if (raised_exception) PyErr_Clear();
48716 Py_INCREF(Py_None);
48721 static PyObject *__Pyx__Coroutine_Throw(PyObject *
self, PyObject *typ, PyObject *val, PyObject *tb,
48722 PyObject *args,
int close_on_genexit) {
48723 __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *)
self;
48724 PyObject *yf = gen->yieldfrom;
48725 if (unlikely(gen->is_running))
48726 return __Pyx_Coroutine_AlreadyRunningError(gen);
48730 if (__Pyx_PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit) && close_on_genexit) {
48731 int err = __Pyx_Coroutine_CloseIter(gen, yf);
48733 __Pyx_Coroutine_Undelegate(gen);
48735 return __Pyx_Coroutine_MethodReturn(
self, __Pyx_Coroutine_SendEx(gen, NULL, 0));
48738 gen->is_running = 1;
48740 #ifdef __Pyx_Generator_USED
48741 || __Pyx_Generator_CheckExact(yf)
48743 #ifdef __Pyx_Coroutine_USED
48744 || __Pyx_Coroutine_Check(yf)
48747 ret = __Pyx__Coroutine_Throw(yf, typ, val, tb, args, close_on_genexit);
48748 #ifdef __Pyx_Coroutine_USED 48749 }
else if (__Pyx_CoroutineAwait_CheckExact(yf)) {
48750 ret = __Pyx__Coroutine_Throw(((__pyx_CoroutineAwaitObject*)yf)->coroutine, typ, val, tb, args, close_on_genexit);
48753 PyObject *meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_throw);
48754 if (unlikely(!meth)) {
48756 if (!PyErr_ExceptionMatches(PyExc_AttributeError)) {
48757 gen->is_running = 0;
48761 __Pyx_Coroutine_Undelegate(gen);
48762 gen->is_running = 0;
48765 if (likely(args)) {
48766 ret = PyObject_CallObject(meth, args);
48768 ret = PyObject_CallFunctionObjArgs(meth, typ, val, tb, NULL);
48772 gen->is_running = 0;
48775 ret = __Pyx_Coroutine_FinishDelegation(gen);
48777 return __Pyx_Coroutine_MethodReturn(
self, ret);
48780 __Pyx_Raise(typ, val, tb, NULL);
48781 return __Pyx_Coroutine_MethodReturn(
self, __Pyx_Coroutine_SendEx(gen, NULL, 0));
48783 static PyObject *__Pyx_Coroutine_Throw(PyObject *
self, PyObject *args) {
48785 PyObject *val = NULL;
48786 PyObject *tb = NULL;
48787 if (!PyArg_UnpackTuple(args, (
char *)
"throw", 1, 3, &typ, &val, &tb))
48789 return __Pyx__Coroutine_Throw(
self, typ, val, tb, args, 1);
48791 static CYTHON_INLINE
int __Pyx_Coroutine_traverse_excstate(__Pyx_ExcInfoStruct *exc_state, visitproc visit,
void *arg) {
48792 Py_VISIT(exc_state->exc_type);
48793 Py_VISIT(exc_state->exc_value);
48794 Py_VISIT(exc_state->exc_traceback);
48797 static int __Pyx_Coroutine_traverse(__pyx_CoroutineObject *gen, visitproc visit,
void *arg) {
48798 Py_VISIT(gen->closure);
48799 Py_VISIT(gen->classobj);
48800 Py_VISIT(gen->yieldfrom);
48801 return __Pyx_Coroutine_traverse_excstate(&gen->gi_exc_state, visit, arg);
48803 static int __Pyx_Coroutine_clear(PyObject *
self) {
48804 __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *)
self;
48805 Py_CLEAR(gen->closure);
48806 Py_CLEAR(gen->classobj);
48807 Py_CLEAR(gen->yieldfrom);
48808 __Pyx_Coroutine_ExceptionClear(&gen->gi_exc_state);
48809 #ifdef __Pyx_AsyncGen_USED 48810 if (__Pyx_AsyncGen_CheckExact(
self)) {
48811 Py_CLEAR(((__pyx_PyAsyncGenObject*)gen)->ag_finalizer);
48814 Py_CLEAR(gen->gi_code);
48815 Py_CLEAR(gen->gi_name);
48816 Py_CLEAR(gen->gi_qualname);
48817 Py_CLEAR(gen->gi_modulename);
48820 static void __Pyx_Coroutine_dealloc(PyObject *
self) {
48821 __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *)
self;
48822 PyObject_GC_UnTrack(gen);
48823 if (gen->gi_weakreflist != NULL)
48824 PyObject_ClearWeakRefs(
self);
48825 if (gen->resume_label >= 0) {
48826 PyObject_GC_Track(
self);
48827 #if PY_VERSION_HEX >= 0x030400a1 && CYTHON_USE_TP_FINALIZE 48828 if (PyObject_CallFinalizerFromDealloc(
self))
48830 Py_TYPE(gen)->tp_del(
self);
48831 if (self->ob_refcnt > 0)
48836 PyObject_GC_UnTrack(
self);
48838 #ifdef __Pyx_AsyncGen_USED 48839 if (__Pyx_AsyncGen_CheckExact(
self)) {
48843 Py_CLEAR(((__pyx_PyAsyncGenObject*)
self)->ag_finalizer);
48846 __Pyx_Coroutine_clear(
self);
48847 PyObject_GC_Del(gen);
48849 static void __Pyx_Coroutine_del(PyObject *
self) {
48850 PyObject *error_type, *error_value, *error_traceback;
48851 __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *)
self;
48852 __Pyx_PyThreadState_declare
48853 if (gen->resume_label < 0) {
48856 #if !CYTHON_USE_TP_FINALIZE 48857 assert(self->ob_refcnt == 0);
48858 self->ob_refcnt = 1;
48860 __Pyx_PyThreadState_assign
48861 __Pyx_ErrFetch(&error_type, &error_value, &error_traceback);
48862 #ifdef __Pyx_AsyncGen_USED 48863 if (__Pyx_AsyncGen_CheckExact(
self)) {
48864 __pyx_PyAsyncGenObject *agen = (__pyx_PyAsyncGenObject*)
self;
48865 PyObject *finalizer = agen->ag_finalizer;
48866 if (finalizer && !agen->ag_closed) {
48867 PyObject *res = __Pyx_PyObject_CallOneArg(finalizer,
self);
48868 if (unlikely(!res)) {
48869 PyErr_WriteUnraisable(
self);
48873 __Pyx_ErrRestore(error_type, error_value, error_traceback);
48878 if (unlikely(gen->resume_label == 0 && !error_value)) {
48879 #ifdef __Pyx_Coroutine_USED 48880 #ifdef __Pyx_Generator_USED 48881 if (!__Pyx_Generator_CheckExact(
self))
48884 PyObject_GC_UnTrack(
self);
48885 #if PY_MAJOR_VERSION >= 3 || defined(PyErr_WarnFormat) 48886 if (unlikely(PyErr_WarnFormat(PyExc_RuntimeWarning, 1,
"coroutine '%.50S' was never awaited", gen->gi_qualname) < 0))
48887 PyErr_WriteUnraisable(
self);
48891 #if CYTHON_COMPILING_IN_PYPY 48893 cmsg = (
char*)
"coroutine was never awaited";
48896 PyObject *qualname;
48897 qualname = gen->gi_qualname;
48898 cname = PyString_AS_STRING(qualname);
48899 msg = PyString_FromFormat(
"coroutine '%.50s' was never awaited", cname);
48900 if (unlikely(!msg)) {
48902 cmsg = (
char*)
"coroutine was never awaited";
48904 cmsg = PyString_AS_STRING(msg);
48907 if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, cmsg, 1) < 0))
48908 PyErr_WriteUnraisable(
self);
48911 PyObject_GC_Track(
self);
48915 PyObject *res = __Pyx_Coroutine_Close(
self);
48916 if (unlikely(!res)) {
48917 if (PyErr_Occurred())
48918 PyErr_WriteUnraisable(
self);
48923 __Pyx_ErrRestore(error_type, error_value, error_traceback);
48924 #if !CYTHON_USE_TP_FINALIZE 48925 assert(self->ob_refcnt > 0);
48926 if (--self->ob_refcnt == 0) {
48930 Py_ssize_t refcnt =
self->ob_refcnt;
48931 _Py_NewReference(
self);
48932 self->ob_refcnt = refcnt;
48934 #if CYTHON_COMPILING_IN_CPYTHON 48935 assert(PyType_IS_GC(self->ob_type) &&
48936 _Py_AS_GC(
self)->gc.gc_refs != _PyGC_REFS_UNTRACKED);
48939 #ifdef COUNT_ALLOCS 48940 --Py_TYPE(
self)->tp_frees;
48941 --Py_TYPE(
self)->tp_allocs;
48946 __Pyx_Coroutine_get_name(__pyx_CoroutineObject *
self, CYTHON_UNUSED
void *context)
48948 PyObject *name =
self->gi_name;
48949 if (unlikely(!name)) name = Py_None;
48954 __Pyx_Coroutine_set_name(__pyx_CoroutineObject *
self, PyObject *value, CYTHON_UNUSED
void *context)
48957 #if PY_MAJOR_VERSION >= 3 48958 if (unlikely(value == NULL || !PyUnicode_Check(value)))
48960 if (unlikely(value == NULL || !PyString_Check(value)))
48963 PyErr_SetString(PyExc_TypeError,
48964 "__name__ must be set to a string object");
48967 tmp =
self->gi_name;
48969 self->gi_name = value;
48974 __Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *
self, CYTHON_UNUSED
void *context)
48976 PyObject *name =
self->gi_qualname;
48977 if (unlikely(!name)) name = Py_None;
48982 __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *
self, PyObject *value, CYTHON_UNUSED
void *context)
48985 #if PY_MAJOR_VERSION >= 3 48986 if (unlikely(value == NULL || !PyUnicode_Check(value)))
48988 if (unlikely(value == NULL || !PyString_Check(value)))
48991 PyErr_SetString(PyExc_TypeError,
48992 "__qualname__ must be set to a string object");
48995 tmp =
self->gi_qualname;
48997 self->gi_qualname = value;
49001 static __pyx_CoroutineObject *__Pyx__Coroutine_New(
49002 PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
49003 PyObject *name, PyObject *qualname, PyObject *module_name) {
49004 __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type);
49005 if (unlikely(!gen))
49007 return __Pyx__Coroutine_NewInit(gen, body, code, closure, name, qualname, module_name);
49009 static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
49010 __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
49011 PyObject *name, PyObject *qualname, PyObject *module_name) {
49013 gen->closure = closure;
49014 Py_XINCREF(closure);
49015 gen->is_running = 0;
49016 gen->resume_label = 0;
49017 gen->classobj = NULL;
49018 gen->yieldfrom = NULL;
49019 gen->gi_exc_state.exc_type = NULL;
49020 gen->gi_exc_state.exc_value = NULL;
49021 gen->gi_exc_state.exc_traceback = NULL;
49022 #if CYTHON_USE_EXC_INFO_STACK 49023 gen->gi_exc_state.previous_item = NULL;
49025 gen->gi_weakreflist = NULL;
49026 Py_XINCREF(qualname);
49027 gen->gi_qualname = qualname;
49029 gen->gi_name = name;
49030 Py_XINCREF(module_name);
49031 gen->gi_modulename = module_name;
49033 gen->gi_code = code;
49034 PyObject_GC_Track(gen);
49039 static PyObject* __Pyx_Coroutine_patch_module(PyObject* module,
const char* py_code) {
49040 #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) 49042 PyObject *globals, *result_obj;
49043 globals = PyDict_New();
if (unlikely(!globals))
goto ignore;
49044 result = PyDict_SetItemString(globals,
"_cython_coroutine_type",
49045 #ifdef __Pyx_Coroutine_USED
49046 (PyObject*)__pyx_CoroutineType);
49050 if (unlikely(result < 0))
goto ignore;
49051 result = PyDict_SetItemString(globals,
"_cython_generator_type",
49052 #ifdef __Pyx_Generator_USED
49053 (PyObject*)__pyx_GeneratorType);
49057 if (unlikely(result < 0))
goto ignore;
49058 if (unlikely(PyDict_SetItemString(globals,
"_module", module) < 0))
goto ignore;
49059 if (unlikely(PyDict_SetItemString(globals,
"__builtins__", __pyx_b) < 0))
goto ignore;
49060 result_obj = PyRun_String(py_code, Py_file_input, globals, globals);
49061 if (unlikely(!result_obj))
goto ignore;
49062 Py_DECREF(result_obj);
49063 Py_DECREF(globals);
49066 Py_XDECREF(globals);
49067 PyErr_WriteUnraisable(module);
49068 if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning,
"Cython module failed to patch module with custom type", 1) < 0)) {
49079 #ifndef CYTHON_REGISTER_ABCS 49080 #define CYTHON_REGISTER_ABCS 1 49082 #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) 49083 static PyObject* __Pyx_patch_abc_module(PyObject *module);
49084 static PyObject* __Pyx_patch_abc_module(PyObject *module) {
49085 module = __Pyx_Coroutine_patch_module(
49087 "if _cython_generator_type is not None:\n" 49088 " try: Generator = _module.Generator\n" 49089 " except AttributeError: pass\n" 49090 " else: Generator.register(_cython_generator_type)\n" 49091 "if _cython_coroutine_type is not None:\n" 49092 " try: Coroutine = _module.Coroutine\n" 49093 " except AttributeError: pass\n" 49094 " else: Coroutine.register(_cython_coroutine_type)\n" 49099 static int __Pyx_patch_abc(
void) {
49100 #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) 49101 static int abc_patched = 0;
49102 if (CYTHON_REGISTER_ABCS && !abc_patched) {
49104 module = PyImport_ImportModule((PY_MAJOR_VERSION >= 3) ?
"collections.abc" :
"collections");
49106 PyErr_WriteUnraisable(NULL);
49107 if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning,
49108 ((PY_MAJOR_VERSION >= 3) ?
49109 "Cython module failed to register with collections.abc module" :
49110 "Cython module failed to register with collections module"), 1) < 0)) {
49114 module = __Pyx_patch_abc_module(module);
49116 if (unlikely(!module))
49120 module = PyImport_ImportModule(
"backports_abc");
49122 module = __Pyx_patch_abc_module(module);
49123 Py_XDECREF(module);
49130 if ((0)) __Pyx_Coroutine_patch_module(NULL, NULL);
49136 static PyMethodDef __pyx_Generator_methods[] = {
49137 {
"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O,
49138 (
char*) PyDoc_STR(
"send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration.")},
49139 {
"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS,
49140 (
char*) PyDoc_STR(
"throw(typ[,val[,tb]]) -> raise exception in generator,\nreturn next yielded value or raise StopIteration.")},
49141 {
"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS,
49142 (
char*) PyDoc_STR(
"close() -> raise GeneratorExit inside generator.")},
49145 static PyMemberDef __pyx_Generator_memberlist[] = {
49146 {(
char *)
"gi_running", T_BOOL, offsetof(__pyx_CoroutineObject, is_running), READONLY, NULL},
49147 {(
char*)
"gi_yieldfrom", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY,
49148 (
char*) PyDoc_STR(
"object being iterated by 'yield from', or None")},
49149 {(
char*)
"gi_code", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_code), READONLY, NULL},
49152 static PyGetSetDef __pyx_Generator_getsets[] = {
49153 {(
char *)
"__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name,
49154 (
char*) PyDoc_STR(
"name of the generator"), 0},
49155 {(
char *)
"__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
49156 (
char*) PyDoc_STR(
"qualified name of the generator"), 0},
49159 static PyTypeObject __pyx_GeneratorType_type = {
49160 PyVarObject_HEAD_INIT(0, 0)
49162 sizeof(__pyx_CoroutineObject),
49164 (destructor) __Pyx_Coroutine_dealloc,
49179 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE,
49181 (traverseproc) __Pyx_Coroutine_traverse,
49184 offsetof(__pyx_CoroutineObject, gi_weakreflist),
49186 (iternextfunc) __Pyx_Generator_Next,
49187 __pyx_Generator_methods,
49188 __pyx_Generator_memberlist,
49189 __pyx_Generator_getsets,
49205 #
if CYTHON_USE_TP_FINALIZE
49208 __Pyx_Coroutine_del,
49211 #
if CYTHON_USE_TP_FINALIZE
49212 __Pyx_Coroutine_del,
49213 #elif PY_VERSION_HEX >= 0x030400a1
49216 #
if PY_VERSION_HEX >= 0x030800b1
49219 #
if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
49223 static int __pyx_Generator_init(
void) {
49224 __pyx_GeneratorType_type.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
49225 __pyx_GeneratorType_type.tp_iter = PyObject_SelfIter;
49226 __pyx_GeneratorType = __Pyx_FetchCommonType(&__pyx_GeneratorType_type);
49227 if (unlikely(!__pyx_GeneratorType)) {
49234 static int __Pyx_check_binary_version(
void) {
49235 char ctversion[4], rtversion[4];
49236 PyOS_snprintf(ctversion, 4,
"%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
49237 PyOS_snprintf(rtversion, 4,
"%s", Py_GetVersion());
49238 if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) {
49240 PyOS_snprintf(message,
sizeof(message),
49241 "compiletime version %s of module '%.100s' " 49242 "does not match runtime version %s",
49243 ctversion, __Pyx_MODULE_NAME, rtversion);
49244 return PyErr_WarnEx(NULL, message, 1);
49250 static int __Pyx_ExportFunction(
const char *name,
void (*
f)(
void),
const char *sig) {
49252 PyObject *cobj = 0;
49257 d = PyObject_GetAttrString(__pyx_m, (
char *)
"__pyx_capi__");
49264 if (PyModule_AddObject(__pyx_m, (
char *)
"__pyx_capi__", d) < 0)
49268 #if PY_VERSION_HEX >= 0x02070000 49269 cobj = PyCapsule_New(tmp.p, sig, 0);
49271 cobj = PyCObject_FromVoidPtrAndDesc(tmp.p, (
void *)sig, 0);
49275 if (PyDict_SetItemString(d, name, cobj) < 0)
49287 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
49289 #if PY_MAJOR_VERSION < 3 49290 if (t->is_unicode) {
49291 *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
49292 }
else if (t->intern) {
49293 *t->p = PyString_InternFromString(t->s);
49295 *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
49298 if (t->is_unicode | t->is_str) {
49300 *t->p = PyUnicode_InternFromString(t->s);
49301 }
else if (t->encoding) {
49302 *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
49304 *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
49307 *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
49312 if (PyObject_Hash(*t->p) == -1)
49319 static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(
const char* c_str) {
49320 return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str));
49322 static CYTHON_INLINE
const char* __Pyx_PyObject_AsString(PyObject* o) {
49324 return __Pyx_PyObject_AsStringAndSize(o, &ignore);
49326 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 49327 #if !CYTHON_PEP393_ENABLED 49328 static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
49330 PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
49331 if (!defenc)
return NULL;
49332 defenc_c = PyBytes_AS_STRING(defenc);
49333 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 49335 char* end = defenc_c + PyBytes_GET_SIZE(defenc);
49337 for (c = defenc_c; c < end; c++) {
49338 if ((
unsigned char) (*c) >= 128) {
49339 PyUnicode_AsASCIIString(o);
49345 *length = PyBytes_GET_SIZE(defenc);
49349 static CYTHON_INLINE
const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
49350 if (unlikely(__Pyx_PyUnicode_READY(o) == -1))
return NULL;
49351 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 49352 if (likely(PyUnicode_IS_ASCII(o))) {
49353 *length = PyUnicode_GET_LENGTH(o);
49354 return PyUnicode_AsUTF8(o);
49356 PyUnicode_AsASCIIString(o);
49360 return PyUnicode_AsUTF8AndSize(o, length);
49365 static CYTHON_INLINE
const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
49366 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 49368 #
if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
49369 __Pyx_sys_getdefaultencoding_not_ascii &&
49371 PyUnicode_Check(o)) {
49372 return __Pyx_PyUnicode_AsStringAndSize(o, length);
49375 #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) 49376 if (PyByteArray_Check(o)) {
49377 *length = PyByteArray_GET_SIZE(o);
49378 return PyByteArray_AS_STRING(o);
49383 int r = PyBytes_AsStringAndSize(o, &result, length);
49384 if (unlikely(r < 0)) {
49391 static CYTHON_INLINE
int __Pyx_PyObject_IsTrue(PyObject* x) {
49392 int is_true = x == Py_True;
49393 if (is_true | (x == Py_False) | (x == Py_None))
return is_true;
49394 else return PyObject_IsTrue(x);
49396 static CYTHON_INLINE
int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
49398 if (unlikely(!x))
return -1;
49399 retval = __Pyx_PyObject_IsTrue(x);
49403 static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result,
const char* type_name) {
49404 #if PY_MAJOR_VERSION >= 3 49405 if (PyLong_Check(result)) {
49406 if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
49407 "__int__ returned non-int (type %.200s). " 49408 "The ability to return an instance of a strict subclass of int " 49409 "is deprecated, and may be removed in a future version of Python.",
49410 Py_TYPE(result)->tp_name)) {
49417 PyErr_Format(PyExc_TypeError,
49418 "__%.4s__ returned non-%.4s (type %.200s)",
49419 type_name, type_name, Py_TYPE(result)->tp_name);
49423 static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
49424 #if CYTHON_USE_TYPE_SLOTS 49425 PyNumberMethods *m;
49427 const char *name = NULL;
49428 PyObject *res = NULL;
49429 #if PY_MAJOR_VERSION < 3 49430 if (likely(PyInt_Check(x) || PyLong_Check(x)))
49432 if (likely(PyLong_Check(x)))
49434 return __Pyx_NewRef(x);
49435 #if CYTHON_USE_TYPE_SLOTS 49436 m = Py_TYPE(x)->tp_as_number;
49437 #if PY_MAJOR_VERSION < 3 49438 if (m && m->nb_int) {
49440 res = m->nb_int(x);
49442 else if (m && m->nb_long) {
49444 res = m->nb_long(x);
49447 if (likely(m && m->nb_int)) {
49449 res = m->nb_int(x);
49453 if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
49454 res = PyNumber_Int(x);
49458 #if PY_MAJOR_VERSION < 3 49459 if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) {
49461 if (unlikely(!PyLong_CheckExact(res))) {
49463 return __Pyx_PyNumber_IntOrLongWrongResultType(res, name);
49466 else if (!PyErr_Occurred()) {
49467 PyErr_SetString(PyExc_TypeError,
49468 "an integer is required");
49472 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
49475 #if PY_MAJOR_VERSION < 3 49476 if (likely(PyInt_CheckExact(b))) {
49477 if (
sizeof(Py_ssize_t) >=
sizeof(
long))
49478 return PyInt_AS_LONG(b);
49480 return PyInt_AsSsize_t(b);
49483 if (likely(PyLong_CheckExact(b))) {
49484 #if CYTHON_USE_PYLONG_INTERNALS 49485 const digit* digits = ((PyLongObject*)b)->ob_digit;
49486 const Py_ssize_t size = Py_SIZE(b);
49487 if (likely(__Pyx_sst_abs(size) <= 1)) {
49488 ival = likely(size) ? digits[0] : 0;
49489 if (size == -1) ival = -ival;
49494 if (8 *
sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
49495 return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (
size_t)digits[0]));
49499 if (8 *
sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
49500 return -(Py_ssize_t) (((((
size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
49504 if (8 *
sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
49505 return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (
size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
49509 if (8 *
sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
49510 return -(Py_ssize_t) (((((((
size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (
size_t)digits[0]));
49514 if (8 *
sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
49515 return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (
size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (
size_t)digits[0]));
49519 if (8 *
sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
49520 return -(Py_ssize_t) (((((((((
size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (
size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
49526 return PyLong_AsSsize_t(b);
49528 x = PyNumber_Index(b);
49530 ival = PyInt_AsSsize_t(x);
49534 static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(
long b) {
49535 return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
49537 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(
size_t ival) {
49538 return PyInt_FromSize_t(ival);
double fp(const double &g, const double &h, const double &hZ)